使用pyinstaller打包:未找到PyQt4模块
大家好,感谢你们的阅读。我正在用pyinstaller把我的Python代码打包成一个文件,但当我运行这个打包好的文件时,出现了以下错误:
Traceback (most recent call last):
File "<string>", line 21, in <module>
File "C:\Users\****\Desktop\pyinstaller-2.0\pyinstaller-2.0\PyInstaller\loader\iu.py", line 409, in importHook
ImportError: No module named PyQt4.QtCore
我不知道这个错误是什么意思,尤其是因为我的桌面上没有名为pyinstaller-2.0的文件夹,而且我根本没有使用PyQt4。
我导入的模块有:Tkinter, tkFileDialog, tkMessageBox, multiprocessing, os, sys, time, numpy, scipy.weave, pywt, matplotlib.pyplot
我觉得问题可能和multiprocessing
有关,因为我之前没有遇到过这个错误。我使用了这个方法来正确实现multiprocessing
模块。
1 个回答
3
如果你在使用 PyQt
,那么用 PyInstaller 导入模块的唯一方法就是使用
from PyQt4 import QtCore, QtGui
而不是
import PyQt4.QtCore, PyQt4.QtGui
这正是你错误提示的意思。不过,你说你并没有使用 PyQt
。
PyQt
是 matplotlib
的一个可选依赖项,所以 PyInstaller 可能在检查 matplotlib
模块时,顺便把 PyQt
也包含进来了。
我建议你在构建时排除 PyQt
模块;在你的 .spec
文件中,找到 Analysis
类的那一行,类似于
Analysis( ..., excludes=['PyQt4', 'PyQt4.QtCore', 'PyQt4.QtGui'])
然后按照上面的建议修改 excludes
这个关键字参数。