Pyinstaller QtCore 模块导入错误

6 投票
2 回答
3603 浏览
提问于 2025-04-18 06:50

我正在尝试使用pyinstaller的--onefile选项来构建我的应用程序。下面是相关的代码。

import sys
from PyQt4 import QtGui, QtCore
from modules.login import Login

def main():
    app = QtGui.QApplication(sys.argv)
    app.setQuitOnLastWindowClosed(False)
    login = Login()
    login.show()
    sys.exit(app.exec_())


if __name__ == "__main__":
    main()    

我尝试使用以下命令进行构建:

 >pyinstaller --onefile app.py

运行生成的dist/app时,我遇到了这个错误:

Traceback (most recent call last):
  File "<string>", line 36, in <module>
ImportError: No module named QtCore

我是在Ubuntu 13上进行构建的。有人知道为什么会出现这个问题吗?

2 个回答

0

我之前也遇到过类似的问题。当我运行命令 pyinstaller --onedir main.py 的时候,出现了那个错误。

我把 Qt5core.dll 文件复制到了生成的 .exe 文件所在的文件夹里,然后再放到 \PyQt\bin 文件夹里,结果一切都正常了。

6

现在的PyInstaller版本里有个bug,导致了这个问题。想了解更多细节,可以看看这个链接

好消息是,这个问题已经修复了。坏消息是,修复的版本要等到PyInstaller 2.2才会发布。在这之前,你可以试试安装一个开发版的PyInstaller,来解决这个问题。

撰写回答