在这里,我在 Win7 x64 上运行 Python 2.7.3 (x64)、PyQt 4.9.5-1 (x64)。我想将一个简单的 PyQt 脚本转换为一个 exe 文件。
这是我的python脚本:
#!/usr/bin/env python
import sys
from PyQt4 import Qt
a = Qt.QApplication(sys.argv)
def sayHello():
print "Hello, World!"
hellobutton = Qt.QPushButton("Say 'Hello world!'",None)
a.connect(hellobutton, Qt.SIGNAL("clicked()"), sayHello)
hellobutton.show()
a.exec_()
从命令行运行它按预期工作。我为 py2exe 使用 setup.py:
from distutils.core import setup
import py2exe
setup(console=['pyqt-example.py'])
但是,如果我尝试使用 py2exe 0.6.9 将其转换为 exe 文件,则python setup.py py2exe
在运行 exe 文件时会出现此错误:
Traceback (most recent call last):
File "pyqt-example.py", line 6, in <module>
a = Qt.QApplication(sys.argv)
AttributeError: 'module' object has no attribute 'QApplication'
我还尝试了 cx_freeze 4.3 和\Python27\Scripts\cxfreeze pyqt-example.py --target-dir dist
. 这导致:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module>
exec code in m.__dict__
File "pyqt-example.py", line 6, in <module>
a = Qt.QApplication(sys.argv)
AttributeError: 'module' object has no attribute 'QApplication'
所以我假设我错过了通知这两个工具一些 Qt 组件的位置。我到底错过了什么?