2010-01-06 86 views
1

我想在使用pyqt的窗口中製作一個簡單的hello-world可執行文件python gui應用程序。所以我做了pyqt.py文件用py2exe構建PyQt腳本時出現問題(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)