2013-08-31 90 views
6

Pyinstallerを使用してPythonスクリプトを実行可能ファイルに変換しています。このスクリプトにはnltk、begin、jsonなどのさまざまなパッケージからの複数のインポートが含まれています。 10行のコードの実行可能ファイルは54MBですが、これは非現実的に高く、すべてのモジュールを1つのファイルにパッケージ化していますが、Pythonスクリプト自体が2KBしかないほど大きくなります。Pyinstallerで生成された実行ファイルのファイルサイズを小さくする一般的なヒントは何ですか

".exe"ファイルサイズを小さくする一般的なヒントは何ですか?

from nltk.metrics.agreement import AnnotationTask 

インポートモジュールは独立した機能を持っていると私は持っている:私は私だけのように、個々の機能と全体のないモジュールをインポートした

>pyinstaller.py -F -o output check.py 

スクリプトに変換するには、以下のコマンドを使用しています

3から4の関数だけを選択的にインポートしましたが、これは生成されたexeファイルサイズには何の影響もないようですが、すべての関数は無駄にexeファイルにインポートされますか?これを避ける方法は?

答えて

2

全く違う2つのことを比較しています。生成するexeファイルには、ファイルだけでなく、Pythonインタプリタとインポートされたすべてのモジュールも含まれています。私のpython 2.7を見ると、Windowsの下にインストールすると83MBの大きさになります。 ntlkとcoはおそらく最小のライブラリではないかもしれませんし、あなたはそれらをすべて実行可能ファイルに含める必要があります。比較のため、中小規模のプロジェクトでは、cx_freezeを使用して約23 MBのデータを生成します(これには10 MBのQT4 dllが含まれています)。

また、UPXを使用して実行可能ファイルを圧縮することもできます(hereを参照)。

+0

cfreezeが私にエラーを投げていますが、一般に、pyinstallerに比べて小さいサイズのファイルを出力していますか? – stackit

+0

@Ali cx_freezeがPython3のサポートを最初に持っていたので、pyinstallerを長い間使用していませんでした。深い理由はありません。私はUPXを最初に試して、それがどれだけあなたを助けてくれるのか見てみましょう。 – Voo

+0

モジュールは独立した機能を持っていますが、私は3-4個の関数しか選択的にインポートしませんでしたが、ファイルサイズは変更されません – stackit

関連する問題