更新
如果我尝试从Pyinstaller 3.2降级到3.1,那么当我尝试运行可执行文件时,我会获得以下回溯。
我尝试将--hidden-import=collect_submodules('pkg_resources._vendor')
添加到pyinstaller,如此处所述,但它没有效果。同样的错误。这似乎是由于setuptools的问题。我使用的是26.0.0。许多消息人士说,降级到19.3确定了问题确实解决了这个问题,但接下来我回到了下面的问题。
我有一个python 2.7 pyqt4项目我试图使用pyinstaller变成.exe。我用:
pyinstaller --additional-hooks-rir=. --clean --win-private-assemblies pipegui.py
pipegui.py可以在github上找到here
我得到一个可用的可执行文件,该应用程序似乎正常运行Here是终端在pyinstaller冻结时吐出的内容。但是,当我运行程序的特定部分时,应用程序崩溃了。它崩溃了,终端进入一个循环,不断输出下面的" Poolworker-X"在最高层不断增加:
正如你所看到的那样,尽管有" tkinter"在我的项目中没有出现(使用pyqt4)。我正在使用matplotlib,并且从讨论过的here和here回答中我已将以下内容添加到pipegui.py
我的主脚本的顶部:
from Tkinter import *
import Tkinter
import FileDialog
然而,这似乎是朝着错误方向迈出的一步,因为在冻结之后(以及与之前相同的标志)我的可执行文件甚至不会打开,而是我得到了这个:
Here是pyinstaller在冻结时非常相同的输出。记住,我所做的只是添加上面的3个import语句。那就是它。
我也尝试了pyinstaller --additional-hooks=. --clean --win-private-assemblies --hidden-import=Tkinter pipegui.py
,它没有任何区别。对于为什么尝试导入tkinter这样做我完全感到困惑。修复这个追溯会让我更接近解决另一个吗?
我在尝试所有这些之后才发现,我的可执行文件中唯一崩溃的部分是使用parmap多处理的部分。使用matplotlib但不使用parmap的类工作正常。
所以请注意我的问题是如何修复第一个回溯以及为什么matplotlib和tkinter都会在回溯中弹出,尽管我的代码中使用了niether发生了崩溃?
额外备注
--clean --win-private-assemblies
根据here error code 14001