大家好,感谢您的阅读。我使用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
我不知道这个错误告诉了我什么,特别是因为我的桌面上没有dir名称pyinstaller-2.0而且我根本没有使用PyQt4。
导入的模块:Tkinter, tkFileDialog, tkMessageBox, multiprocessing, os, sys, time, numpy, scipy.weave, pywt, matplotlib.pyplot
我认为问题与multiprocessing
有关,因为之前我没有遇到此错误。我使用this recipe正确实现了multiprocessing
模块。
答案 0 :(得分: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
关键字arg。