Ошибка PyInstaller с PyQt при попытке собрать --onefile - PullRequest
7 голосов
/ 18 декабря 2011

Я пытаюсь скомпилировать программу PyQt, используя PyInstaller 1.5.Обе из следующих программ прекрасно работают, когда я использую --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
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_()) 

У кого-нибудь есть идеи?

Ответы [ 3 ]

6 голосов
/ 23 сентября 2013

Хорошо работает для меня (Windows 7x64bit, Python 2.7x32bit) просто добавьте каталог QT в системный путь или добавьте его в командную строку с параметром p:

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

Если вы устанавливаете PyQt из исполняемого файлаон делает все это автоматически для вас:

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

3 голосов
/ 18 декабря 2011

1, Pyinstaller не будет создавать --onefile даже меньше, чем --onedir.Когда вы запускаете --onefile, он просто создает оболочку, которая извлекает все содержимое каталога во временный каталог, а затем запускает его.

2, Pyinstaller не поддерживает import PyQt4.QtCore, PyQt4.QtGui, а from PyQt4 import QtCore, QtGui - этотолько поддерживаемый способ согласно здесь .

3, Какая у вас версия PyQt4?Это версия GPL от установщика Riverbank?

4, вы правильно выполнили шаги?например, Makespec.py, затем Build.py?

0 голосов
/ 29 января 2019

У меня была такая же проблема с pyinstaller 3.4 (python 3.6, PyQt5) и, наконец, он заработал, адаптировав решения, найденные в здесь и здесь .

Метод обобщен:

1) Запустите "pip install pip == 18.1". Крайне важно было использовать версию 18.1, хотя существуют и более новые. После завершения процесса вы можете обновить pip с помощью «pip install pip --upgrade»

2) Установите версию разработки pyinstaller: "pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz"

3) Запустите pyinstaller нормально

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...