Python可执行importerror

时间:2016-10-11 22:10:10

标签: python compilation exe py2exe importerror

我有一个用wx创建的gui和一些其他库,如matlabplot,win32api等......

我已经使用py2exe将python代码编译成可执行文件。

可执行文件已创建,但当我尝试运行它时,会产生错误。

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​​。我觉得它会弊大于利......

有谁知道如何修复此错误?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,因为我不想回到版本,我不得不做一些研究......

问题是,在处理pkg_resources.extern时,找不到(private?)默认包pkg_resources._vendor中的所有必需模块(延迟加载)。

比较源代码(site-packages)中的pkg_resources._vendor和使用可执行文件生成的 library.zip 内容。 options py2exe可以包含zip中缺少的内容。

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

答案 1 :(得分:0)

这是一个新版本的setuptools引入的问题。之一:

将'pkg_resources'添加到setuptools.setup包选项

降级至版本19.2

pip install setuptools==19.2