Ошибка импорта исполняемого файла Python

У меня есть графический интерфейс, который я создал с помощью wx и множества других библиотек, таких как matlabplot, win32api и т. д.

Я скомпилировал код Python в исполняемый файл с помощью py2exe.

Исполняемый файл создается, но когда я пытаюсь его запустить, он выдает ошибку.

Traceback (most recent call last):
  File "gui.py", line 30, in <module>
  File "zipextimporter.pyc", line 82, in load_module
  File "guiupdater.pyc", line 22, in <module>
  File "zipextimporter.pyc", line 82, in load_module
  File "paramiko\__init__.pyc", line 30, in <module>
  File "zipextimporter.pyc", line 82, in load_module
  File "paramiko\transport.pyc", line 32, in <module>
  File "zipextimporter.pyc", line 82, in load_module
  File "cryptography\hazmat\backends\__init__.pyc", line 7, in <module>
  File "zipextimporter.pyc", line 82, in load_module
  File "pkg_resources\__init__.pyc", line 70, in <module>
  File "pkg_resources\extern\__init__.pyc", line 61, in load_module
ImportError: The 'appdirs' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution.

Ранее я скомпилировал исполняемый файл и запустил его в другой среде. Сейчас я нахожусь в новой среде, но у меня установлены все те же зависимости и т.д.

Я провел небольшое исследование, и многие люди говорят, что возврат их setuptools к версии 19.2 исправил это для них, но я не хочу этого делать, потому что мои setuptools имеют версию 28.2. Мне кажется, что от этого будет больше вреда, чем пользы...

Кто-нибудь знает, как исправить эту ошибку?


person Sam    schedule 11.10.2016    source источник


Ответы (2)


У меня была та же проблема, и, поскольку я не хотел возвращаться к версиям, мне пришлось провести некоторое исследование...

Проблема в том, что при обработке pkg_resources.extern не найдены все необходимые модули из (частного?) дефолтного пакета pkg_resources._vendor (отложенная загрузка).

Сравните содержимое pkg_resources._vendor в источнике (сайт-пакеты) и внутри library.zip, созданного с помощью исполняемого файла. Все, что отсутствует в zip, может быть включено options для py2exe.

options={"py2exe": {"includes": ["pkg_resources._vendor.appdirs",...], ...

person Dawryn    schedule 20.01.2017

Это проблема, появившаяся в более новых версиях setuptools. Либо:

добавить «pkg_resources» в параметр пакетов setuptools.setup

or

Переход на версию 19.2

pip install setuptools==19.2 
person user2682863    schedule 18.01.2017