2010-01-06 10 views
1

J'essaye de faire une application de python gui exécutable hello-world simple dans Windows en utilisant pyqt. J'ai donc fait le fichier pyqt.pyProblème lors de la construction d'un script PyQt avec py2exe (QtCore)

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 la première erreur No module named sip, 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

Répondre

3

Vous pouvez faire quelque chose comme ceci, vous n'avez pas besoin d'importer *.

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

setup(windows=script,options=py2exe_opciones) 

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

Here peut lire plus.

2

Ajouter from PyQt4.QtCore import * à pyqt.py. Je ne suis pas sûr 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 une librairie C++ ... Comme, py2exe détecte automatiquement Python dépendances ... Vous devez donc l'importer manuellement.

0

ceci 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)