Question

Je suis en train de faire un simple exécutable bonjour monde python app dans les fenêtres IUG à l'aide de PyQt. J'ai donc fait le fichier pyqt.py

import sys
from PyQt4.QtGui import *
app = QApplication(sys.argv)
button = QPushButton("Hello World", None)
button.show()
app.exec_()

J'ai essayé d'utiliser py2exe avec le script setup.py suivant:

from py2exe.build_exe import py2exe
from distutils.core import setup

setup( console=[{"script": "pyqt.py"}] )

(j'ai eu l'erreur de No module named sip d'abord, mais il est résolu grâce à la page Py2exeAndPyQt).

Maintenant, j'ai l'exécutable et lorsque je tente de l'exécuter, je reçois l'erreur suivante:

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

Comment puis-je résoudre ce problème? TIA

Était-ce utile?

La solution

Vous pouvez faire quelque chose comme ça, vous n'avez pas besoin d'importation *.

py2exe_opciones = {'py2exe': {"includes":["sip"]}}
script = [{"script":"pyqt.py"}]

setup(windows=script,options=py2exe_opciones)

Et maintenant devrait fonctionner le programme. J'ai eu la même erreur.

peut en savoir plus.

Autres conseils

Ajouter from PyQt4.QtCore import * à pyqt.py.

Je ne sais pas pourquoi il n'a pas été inclus automatiquement, mais je pense qu'il a quelque chose à voir avec QtCore seulement utilisé par QtGui, qui est un C ++ lib ... Comme, py2exe ne détecte automatiquement les dépendances de python ... donc, vous devez importer manuellement.

est un exemple

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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top