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