用py2exe构建PyQt脚本时出现问题(QtCore)

问题描述:

我想在使用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

你可以这样做,你不需要导入*。

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

setup(windows=script,options=py2exe_opciones) 

现在程序应该可以工作。我有同样的错误。

Here可以阅读更多。

from PyQt4.QtCore import *添加到pyqt.py.我不确定为什么它不是自动包含的,但我认为它与QtCore只被QtGui使用,这是一个C++ lib ...类似,py2exe只能自动检测python依赖关系...所以你必须手动导入它。

这是示例

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)