ここでは、Python 2.7.3(x64)、PyQt 4.9.5-1(x64)をWin7x64で実行しています。単純な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ファイルに変換しようとすると、exeファイルをpython setup.py py2exe
実行すると次のエラーが発生します。
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_freeze4.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コンポーネントの場所について、これらのツールの両方に通知するのを逃したと思います。私は正確に何が欠けていますか?