Python 3.8.0a3 не смог получить кодек Python для кодировки файловой системы - PullRequest
2 голосов
/ 12 апреля 2019

Когда я вызываю встроенный 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 успешно, но затем вылетает во время выполнения, и я понятия не имею, что может вызвать проблемы - люди предполагают, что среда загрязнена, но она не должна зависеть от среды системы.Как бы я уверенно отправил приложение на компьютеры других людей?Может быть, я пропустил некоторые флаги или определения компиляции?

...