【发布时间】:2016-10-15 09:13:20
【问题描述】:
这是我第一次在这里发布问题,因为我的大部分问题已经被其他人回答了!我正在使用 python 开发一个 GUI 应用程序,并尝试使用 pyinstaller 将其打包到一个文件夹和 .exe 中以便于移植。目前,我正在使用 windows 10 和 anaconda3 来管理我的 python 包。该应用程序依赖于 tkinter、pillow、numpy、scikit-learn、opencv、ffmpeg 和 matplotlib。该应用程序使用主 GUI.py 文件进行格式化,该文件创建许多其他文件的对象(其中许多文件存储在子文件夹中,因为此 GUI 正在替换用于相同目的的命令行实用程序)。我遇到的问题(正如您在标题中看到的那样)是 .exe 正在抛出错误块:
Traceback(最近一次调用最后一次): 文件“site-packages\PyInstaller\loader\rthooks\pyi_rth_pkgres.py”,第 11 行,在 文件“c:\users\gurnben\anaconda3\envs\opencv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”,第 389 行,在 load_module exec(字节码,模块。dict) 文件“site-packages\setuptools-20.7.0-py3.5.egg\pkg_resources__init__.py”,第 68 行,在 文件“site-packages\setuptools-20.7.0-py3.5.egg\pkg_resources\extern__init__.py”,第 60 行,在 load_module ImportError:需要“打包”包;通常这与此软件包捆绑在一起,因此如果您收到此警告,请咨询您的发行版的包装商。 执行脚本pyi_rth_pkgres失败
当我查看 warn.txt 时,它会提供大量丢失的包列表,其中包括一些实际位于单个文件夹包中的包的一部分。
但是,我已经成功地让它识别出来自 opencv 的 dll 文件,并且它没有在丢失的列表中列出(ffmpeg 也没有,但是我没有在文件夹中看到任何 ffmpeg 文件)。我必须传入一个自定义路径以使其包含 opencv 文件,因为它们此时不在 anaconda 中。
对于接下来的故障排除步骤有什么提示或想法吗?我非常感谢您提供的所有帮助,我可以上传任何有助于您诊断问题的代码、文件等。同时,我会继续自己寻找解决方案!
【问题讨论】:
-
更新:我已经重新打包,现在它实际上开始执行,然后抛出一个导入错误!至少进步!错误如下: ImportError: The 'packaging' package is required
-
好的,我相信手头的问题已经解决了,现在我遇到了文件引用问题...
-
我也遇到了,你是怎么解决的?
-
前一阵子,但我相信这是一些数据文件的依赖关系。我不得不修改 .spec 文件以包含这些文件和文件夹
标签: python opencv ffmpeg pyinstaller