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

War es hilfreich?

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top