Подтвердить что ты не робот

Ошибка Python, PyInstaller: отсутствует модуль с именем "Кодировки" и системный кодек

Я использую Python 3.3.3, и я пытаюсь создать .exe из простого .py script.

Мой script выглядит следующим образом:

import encodings

print('Test')

и выполняется правильно.

Когда я пытаюсь создать его с помощью PyInstaller с помощью этой команды:

pyinstaller --onefile Testmodul.py

и попытайтесь открыть мой .exe, он появляется с этой ошибкой: Fatal Python error: Py_Initialize: unable to load the file system codec, ImportError: No module named 'encodings'

Я уже пробовал импортировать модуль "encodings" в свой тестовый скрипт, но он все еще не работает, я также попытался использовать py2exe, и он также не работает вообще.

Есть ли что-то, что я делаю неправильно? Нужно ли мне что-то настраивать в моем PATH? здесь уже включен правильный путь к "C:\Python33".

EDIT: всем, у кого есть эта проблема: я сдался, и после новой установки окон и питона и всего остального, я попробовал еще раз, так же, как и раньше, и работал без проблем. стоит попробовать, если вы действительно в отчаянии!

4b9b3361

Ответ 1

Это, вероятно, потому, что pyinstaller не включил модуль в первую очередь. вы можете попробовать 2 решения.

1) Укажите путь к вашему модулю во время компиляции:

  • pyinstaller --onefile --paths =/path/to/module Testscript.py

2) Укажите путь из файла .spec:

  • выполните эту команду сначала (в каталоге pyinstaller):

    python Makespec.py --onefile /path/to/yourscript.py
    
  • теперь у вас есть файл .spec. откройте его в текстовом редакторе и добавьте путь к вашим модулям в pathex.

    pathex=['C:\\path\\to\\module']
    
  • тогда создайте свою программу:

     python Build.py /path/to/yourscript.spec
    

3) Используйте скрытый импорт:

  • pyinstaller --onefile --hidden-import = имя_модуля Testscript.py
  • вы также можете указать скрытый импорт в файле .spec.

Ответ 2

Добавьте файл hook с именем hook-encodings.py в C:\Python\Lib\site-packages\PyInstaller\hooks и добавьте следующую строку кода для сбора модуля кодирования в файле hook

from PyInstaller.utils.hooks import collect_submodules

hiddenimports = collect_submodules('encodings')

это может сработать, этот ответ может помочь вам Ошибка Pyinstaller для проекта Djnago "ИмпортError: Нет модуля с именем 'django.contrib.admin.apps'"

Ответ 3

Какую версию Windows вы используете (7 или 10)?

Эта проблема, по-видимому, относится к привилегии пользователя... и, если предположить, что она похожа на эта проблема, вы можете сначала попробовать запустить ваш exe файл с правами администратора, а если он снова исчезнет, ​​попробуйте запустить "Pyinstaller" из cmd.exe с правами администратора.