使用pyinstaller打包:未找到PyQt4模块

时间:2013-02-11 12:29:33

标签: python pyinstaller

大家好,感谢您的阅读。我使用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模块。

1 个答案:

答案 0 :(得分:3)

如果您使用PyQt,那么使用PyInstaller导入模块的唯一方法是使用

 from PyQt4 import QtCore, QtGui

而不是

 import PyQt4.QtCore, PyQt4.QtGui

你的错误意味着什么。但是,您说您没有使用PyQt

PyQtmatplotlib的可选依赖项,因此PyInstaller可能正在检查matplotlib模块,因此包括PyQt

我建议从构建中排除PyQt模块;在.spec文件中,搜索Analysis类的行 - 类似

Analysis( ..., excludes=['PyQt4', 'PyQt4.QtCore', 'PyQt4.QtGui'])

并按照上面的建议修改excludes关键字arg。