尝试生成时PyQt出现PyInstaller错误--onefi

2024-10-04 01:22:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用PyInstaller 1.5编译PyQt程序。当我使用--onedir(默认值)时,下面两个程序对我都很好,但这会创建相当大的程序。我想使用--onefile选项,但是当我运行创建的onefile应用程序时,会出现错误:

Traceback (most recent call last):
  File "<string>", line 11, in <module>
  File "pyinstaller/PyInstaller/loader/iu.py", line 468, in importHook
raise ImportError("No module named %s" % fqname)
ImportError: No module named PyQt4.QtCore

以下两种情况都会发生此错误:

import sys 
from PyQt4 import QtCore, QtGui 

app =QtGui.QApplication(sys.argv) 
window =QtGui.QMainWindow() 
window.setCentralWidget(QtGui.QLabel("Hello")) 
window.show() 
sys.exit(app.exec_()) 

而这个:

import sys
import PyQt4.QtCore, PyQt4.QtGui 

app = PyQt4.QtGui.QApplication(sys.argv) 
window = PyQt4.QtGui.QMainWindow() 
window.setCentralWidget(PyQt4.QtGui.QLabel("Hello")) 
window.show() 
sys.exit(app.exec_()) 

有人有什么想法吗?


Tags: inimport程序app错误syslinewindow
3条回答

对我来说很好(Windows 7x64bit,Python2.7x32bit),只需将QT目录添加到系统路径或使用p选项将其添加到命令行即可:

PyInstaller -y -F --distpath="." -p "C:\Python27\Lib\site-packages\PyQt4" test.py

如果从executible安装PyQt,它会自动为您执行所有这些操作:

http://sourceforge.net/projects/pyqt/files/

我在pyinstaller 3.4(python3.6,PyQt5)上也遇到了同样的问题,最后通过调整herehere中的解决方案使它工作起来。

方法总结如下:

1)运行“pip install pip==18.1”。使用18.1版是非常重要的,尽管也有更新的版本。在此过程之后,您可以通过“pip install pip--upgrade”来升级pip

2)安装pyinstaller开发版本:“pip Installhttps://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz

3)正常运行pyinstaller

希望这有帮助!

1,Pyinstaller不会创建——一个甚至小于——onedir的文件。当您运行--onefile时,它只创建一个包装器,将dir中的所有内容提取到一个临时目录,然后运行它。

2、Pyinstaller不支持import PyQt4.QtCore, PyQt4.QtGui,根据here,只有from PyQt4 import QtCore, QtGui支持。

3,你的PyQt4版本是什么?GPL版本是来自Riverbank的安装程序吗?

4.你的步骤正确吗?e、 那么Makespec.py那么Build.py

相关问题 更多 >