Я пытаюсь собрать простой тестовый проект c ++, использующий 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, собранная из исходников, использующих VC ++ 10.
Файл python_d.exe из той же сборки работает без проблем.
Может кто-нибудь объяснить проблему икак это исправить?Мой собственный гугл-фу меня подводит.
РЕДАКТИРОВАТЬ 1
После просмотра исходного кода python я обнаружил, что, как говорится в сообщении об ошибке, функции поиска кодеков нетбыли зарегистрированы.И codec_register
, и PyCodec_Register
такие, какими они должны быть.Просто нигде в коде ни одна из этих функций не называется.
Я действительно не знаю, что это значит, так как до сих пор не знаю, когда и откуда эти функции должны были быть вызваны.Код, который вызывает ошибку, полностью отсутствует в источнике моей другой сборки Python (3.1.3).
EDIT 2
Ответил на мой собственный вопрос ниже.