Я пытаюсь собрать простой тестовый проект С++, который использует python 3.2. Проект строит отлично, но Py_Initialize вызывает фатальную ошибку:
Fatal Python error: Py_Initialize: unable to load the file system codec
LookupError: no codec search functions registered: can't find encoding
Минимальный код:
#include <Python.h>
int main (int, char**)
{
Py_Initialize ();
Py_Finalize ();
return 0;
}
ОС - 32-битная Vista.
Используемая версия python представляет собой сборку отладки python 3.2, построенную из источников с использованием VС++ 10.
Файл python_d.exe из одной и той же сборки работает без проблем.
Может ли кто-нибудь объяснить проблему и как ее исправить? Мой собственный google-fu не позволяет мне.
РЕДАКТИРОВАТЬ 1
После прохождения исходного кода python я обнаружил, что, как говорится в ошибке, никаких функций поиска кодеков не было. И codec_register
, и PyCodec_Register
как и должно быть. Это просто, что нигде в коде не вызывается любая из этих функций.
Я действительно не знаю, что это значит, поскольку я до сих пор не знаю, когда и откуда должны были быть вызваны эти функции. Код, который вызывает ошибку, полностью отсутствует в источнике моей другой сборки python (3.1.3).
РЕДАКТИРОВАТЬ 2
Отвечал на мой вопрос ниже.