Problem beim Aufbau eines PyQt Skript mit py2exe (QtCore)
Frage
Ich versuche, eine einfache Hallo-Welt ausführbaren Python-GUI-Anwendung in Windows mit pyqt zu machen. So habe ich die pyqt.py
Datei gemacht
import sys
from PyQt4.QtGui import *
app = QApplication(sys.argv)
button = QPushButton("Hello World", None)
button.show()
app.exec_()
Ich habe versucht, mit dem folgenden setup.py
Skript zu verwenden py2exe:
from py2exe.build_exe import py2exe
from distutils.core import setup
setup( console=[{"script": "pyqt.py"}] )
(Ich hatte den No module named sip
Fehler zuerst, aber es ist dank der Py2exeAndPyQt
Seite gelöst).
Jetzt habe ich die ausführbare Datei und wenn ich versuche, es zu laufen, bekomme ich folgende Fehlermeldung:
Traceback (most recent call last):
File "pyqt.py", line 2, in <module>
File "PyQt4\QtGui.pyc", line 12, in <module>
File "PyQt4\QtGui.pyc", line 10, in __load
ImportError: No module named QtCore
Wie kann ich das Problem beheben? TIA
Lösung
Sie können etwas tun, die Sie nicht importieren * benötigen.
py2exe_opciones = {'py2exe': {"includes":["sip"]}}
script = [{"script":"pyqt.py"}]
setup(windows=script,options=py2exe_opciones)
Und wird nun das Programm sollte funktionieren. Ich hatte den gleichen Fehler.
Hier können mehr lesen.
Andere Tipps
In from PyQt4.QtCore import *
pyqt.py.
Ich bin mir nicht sicher, warum es nicht automatisch eingeschlossen war, aber ich denke, es hat etwas mit QtCore zu tun hat, nur durch QtGui verwendet werden, die ein C ++ lib ... Wie, Py2exe nur erkennt automatisch Python-Abhängigkeiten ... Also muss man es manuell importieren.
Dies ist ein Beispiel
from setuptools import setup
import py2exe
from glob import glob
SETUP_DICT = {
'windows': [{
'script': 'main.py',
}],
'zipfile': 'lib/library.zip',
'data_files': (
('', glob(r'C:\Windows\SYSTEM32\msvcp100.dll')),
('', glob(r'C:\Windows\SYSTEM32\msvcr100.dll')),
),
'options': {
'py2exe': {
'bundle_files': 3,
'includes': ['sip', 'PyQt4.QtCore'],
},
}
}
setup(**SETUP_DICT)