3

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

4

1 回答 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关键字 arg。

于 2013-03-06T10:01:01.253 回答