2010-01-06 3 views
1

Я пытаюсь создать простое исполняемое приложение python gui-world в windows с помощью pyqt. Так что я сделал pyqt.py файлПроблема при построении скрипта PyQt с py2exe (QtCore)

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

Я пытался использовать py2exe со следующим setup.py сценария:

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

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

(я имел No module named sip ошибку первый, но это решается благодаря Py2exeAndPyQt странице) ,

Теперь у меня есть исполняемый файл, и когда я пытаюсь запустить его, я получаю следующее сообщение об ошибке:

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 

Как я могу это исправить? TIA

ответ

3

Вы можете сделать что-то вроде этого, вам не нужен импорт *.

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

setup(windows=script,options=py2exe_opciones) 

И теперь программа должна работать. У меня была такая же ошибка.

Here можно прочитать больше.

2

Добавить from PyQt4.QtCore import * в pyqt.py.

Я не уверен, почему он не был включен автоматически, но я думаю, что он имеет какое-то отношение к QtCore, только используемому QtGui, который является C++ lib ... Например, py2exe только автоматически обнаруживает python зависимостей ... Поэтому вам нужно импортировать его вручную.

0

это пример

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) 
Смежные вопросы