2011-12-18 7 views
4

PyInstaller 1.5を使用してPyQtプログラムをコンパイルしようとしています。 --onedir(デフォルト)を使用すると、以下の両方のプログラムがうまく動作しますが、かなり大きなプログラムが作成されます。私は--onefileオプションを使用したいが、私はアプリonefile作成し実行したとき、私はエラーを取得:PyInstallerでエラーが発生しました。-onefileをビルドしようとしました。

Traceback (most recent call last): 
    File "<string>", line 11, in <module> 
    File "pyinstaller/PyInstaller/loader/iu.py", line 468, in importHook 
raise ImportError("No module named %s" % fqname) 
ImportError: No module named PyQt4.QtCore 

このエラーは、この両方のために発生します。

import sys 
from PyQt4 import QtCore, QtGui 

app =QtGui.QApplication(sys.argv) 
window =QtGui.QMainWindow() 
window.setCentralWidget(QtGui.QLabel("Hello")) 
window.show() 
sys.exit(app.exec_()) 

と、この:

import sys 
import PyQt4.QtCore, PyQt4.QtGui 

app = PyQt4.QtGui.QApplication(sys.argv) 
window = PyQt4.QtGui.QMainWindow() 
window.setCentralWidget(PyQt4.QtGui.QLabel("Hello")) 
window.show() 
sys.exit(app.exec_()) 

誰にもアイデアはありますか?

答えて

2

1、Pyinstallerは--onefileを--onedirよりも小さく作成しません。 --onefileを実行すると、dirのすべてを一時ディレクトリに展開して実行するラッパーが作成されます。

2、Pyinstallerはimport PyQt4.QtCore, PyQt4.QtGuiをサポートしていません。from PyQt4 import QtCore, QtGuihereに従う唯一のサポートされている方法です。

3、あなたのPyQt4のバージョンは何ですか? RiverbankのインストーラのGPLバージョンはありますか?

4、手順を正しく実行しましたか?例えばMakespec.py次にBuild.py

+0

。私はそれを見つけることができませんでしたが、私は、スペックファイルのAnalysis()定義で何かをやらなければならないと考えました。たぶん私は間違っていて、私がしたのは 'PyQt4 import QtCore、QtGui'のインポート構文でした。 – jdi

+0

実際、pyinstallerが確実にインクルードするようにするには、いつでも 'PyQt4'をspecファイルに追加することができます。 –

+0

PyQt4(または他の大きなパッケージ)をspecファイルに追加する方法を教えてもらえますか?私が何をしているのかを理解するためには、ドキュメントが十分にはっきりしないのではないかと心配しています。 – taynaron

5

私のためのファイン(のWindows 7x64bit、Pythonの2.7x32bit)は単にあなたのシステムパスのいずれかにQTディレクトリを追加したり、pオプションでコマンドラインに追加作品:

PyInstaller -y -F --distpath="." -p "C:\Python27\Lib\site-packages\PyQt4" test.py 

あなたはそれがすべて行いexecutibleからPyQtはをインストールする場合自動的にあなたのために、この:私は、私はしばらく前にLinuxボックスにやったのPyQtビルド用のファイル.spec私の例を見つけることを試みていた

http://sourceforge.net/projects/pyqt/files/

+0

何とかpyinstallerはPySideライブラリを自動的には含んでいませんでした。あなたのソリューションは私のために働く。しかし、他の回避策がありますか? – dnth

関連する問題