Когда я вызываю встроенный python из моего приложения на c ++, приложение вылетает.Что-то в _PyCodec_Lookup
не работает.Похоже, что отладка указывает на то, что ошибка в этой строке в файле codecs.c
:
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
if (interp->codec_search_path == NULL && _PyCodecRegistry_Init())
goto onError;
interp->codec_search_path
равна NULL и _PyCodecRegistry_Init()
возвращает -1.
Эта проблема уже известна;Такие решения, как удаление python27 или установка переменных среды PYTHONPATH
или PYTHONHOME
либо на ""
, либо путь src, не работают.
Я ссылаюсь на версию 3.8.0a3 cpython, которую я скомпилировал с помощьювключенные скрипты в папке PCBUILD, использующие тот же компилятор, что и мои приложения (MSVC 15 2017).
Операционная система Windows 8.1 64 битная.
Мое приложение ссылается на созданный двоичный файл python38.dll/ python38.lib успешно, но затем вылетает во время выполнения, и я понятия не имею, что может вызвать проблемы - люди предполагают, что среда загрязнена, но она не должна зависеть от среды системы.Как бы я уверенно отправил приложение на компьютеры других людей?Может быть, я пропустил некоторые флаги или определения компиляции?