【问题标题】:Python executable importerrorPython 可执行文件导入错误
【发布时间】:2016-10-11 22:10:09
【问题描述】:

我有一个我用 wx 和一堆其他库(如 matlabplot、win32api 等)创建的 gui...

我已经使用 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 版本。我觉得这样做弊大于利……

有人知道如何解决这个错误吗?

【问题讨论】:

    标签: python compilation exe py2exe importerror


    【解决方案1】:

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

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

    比较源(站点包)和 library.zippkg_resources._vendor 的内容,该内容由可执行文件生成。 options for py2exe 可以包含 zip 中缺少的任何内容。

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

    【讨论】:

      【解决方案2】:

      这是较新版本的 setuptools 引入的问题。要么:

      将“pkg_resources”添加到 setuptools.setup packages 选项

      降级到版本 19.2

      pip install setuptools==19.2 
      

      【讨论】:

        猜你喜欢
        • 2019-12-06
        • 2012-02-25
        • 2017-07-03
        • 1970-01-01
        • 1970-01-01
        • 2021-11-14
        • 1970-01-01
        • 2021-01-25
        • 2013-04-09
        相关资源
        最近更新 更多