Error de PyInstaller con PyQt al intentar comstackr –onefile

Estoy tratando de comstackr un progtwig PyQt usando PyInstaller 1.5. Los dos progtwigs siguientes funcionan bien para mí cuando uso –onedir (el valor predeterminado), pero esto crea progtwigs bastante grandes. Quiero usar la opción –onefile, pero cuando ejecuto la aplicación onefile creada, aparece el error:

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

Este error se produce tanto para esto:

 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_()) 

y esto:

 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_()) 

¿Alguien tiene alguna idea?

1, Pyinstaller no creará – un archivo incluso más pequeño que –onedir. Cuando ejecuta el archivo –onefile, simplemente crea un contenedor que extrae todo lo que está en el directorio a un directorio temporal y luego lo ejecuta.

2, Pyinstaller no admite la import PyQt4.QtCore, PyQt4.QtGui , y from PyQt4 import QtCore, QtGui es la única forma compatible de acuerdo con esto .

3, ¿Cuál es la versión de tu PyQt4? ¿Es la versión GPL del instalador de Riverbank?

4, ¿seguiste los pasos correctamente? por ejemplo, Makespec.py luego Build.py ?

Funciona bien para mí (Windows 7x64bit, Python 2.7x32bit) simplemente agregue el directorio QT a la ruta de su sistema o añádalo a la línea de comandos con la opción p :

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

Si instala PyQt desde el ejecutable, hace todo esto automáticamente por usted:

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

Tuve el mismo problema con pyinstaller 3.4 (python 3.6, PyQt5) y finalmente lo hice funcionar adaptando las soluciones que se encuentran aquí y aquí .

El método resumido:

1) Ejecutar “pip install pip == 18.1”. Fue crucial usar la versión 18.1, aunque también existen otras más nuevas. Después del proceso, puede actualizar pip mediante “pip install pip –upgrade”

2) Instale la versión de desarrollo de pyinstaller: “pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz

3) Ejecutar pyinstaller normalmente

¡Espero que esto ayude!