Нет модулей с именем 'encodings', если каталог python 3 перемещается после сборки из исходного кода - PullRequest
0 голосов
/ 26 декабря 2018

Я искал это и не нашел хороших ответов.Я просто вытащил python из git и собрал его в Windows 10. Файл python.exe прекрасно работает в месте сборки, но если вы скопируете или переместите встроенную папку, вы получите следующую ошибку при запуске python.exe:

Неустранимая ошибка Python: Py_Initialize: невозможно загрузить кодек файловой системы. LookupError: нет функций поиска кодеков, зарегистрированных: невозможно найти кодировку

Текущий поток 0x000060c8 (самый последний вызов в первую очередь):.\ python Fatal Python error: Py_Initialize: невозможно загрузить кодек файловой системы ModuleNotFoundError: Нет модуля с именем 'encodings'

Текущий поток 0x00004f50 (самый последний вызов в первую очередь):

Этостранная причина, если вы запускаете python из каталога сборки D:\Users\brazg\Documents\GitHub\cpython\PCbuild\amd64, он работает нормально.Я хотел бы знать, почему python.exe не запускается, если каталог amd64 перемещен из PCbuild.

В качестве примечания, я не могу найти какую-либо информацию для настройки корневой папки Python послездание из источника.

1 Ответ

0 голосов
/ 26 декабря 2018

Это ответ с точки зрения человека, который раньше не создавал Python из исходного кода.

Чтобы ответить на мой собственный вопрос, что нужно сделать после перемещения двоичных файлов Pythonв другое место из cpython\PCbuild необходимо скопировать каталог Lib из извлеченных источников, поскольку каталог encodings находится в cpython\Lib.

Даже если сборка находится в cpython\PCbuild\<build directory> он все еще читает из cpython\Lib, что имеет смысл, но, я думаю, это должно быть более четко изложено в официальной документации Python.

Если вы копируете каталог amd64 в новое место, вам нужно скопироватьКаталог cpython\Lib в каталог amd64.Вы также можете удалить все файлы .exp, .lib and .pdb, созданные с помощью python, из build.bat.Поскольку все они являются компоновщиком компилятора и отладочной информацией.

Хотелось бы, чтобы было более ясно, что cpython\PCbuild\<build directory> читает до cpython\Lib при запуске.

...