この記事では、pyinstallerで作成したexeファイルのサイズを軽量化するための手法を解説します。
軽量化のための手法
軽量化は、pyinstallerで作成したexeファイルのサイズを削減するための重要な手法です。
以下では、モジュールの除外方法、コードの最適化方法、不要なファイルの削除方法について解説します。
モジュールの除外方法の解説
pyinstallerでは、不要なモジュールを除外することで、exeファイルのサイズを削減することができます。
以下の2つの方法を紹介します。
–exclude-moduleオプションの使用方法
--exclude-module
オプションを使用することで、特定のモジュールを除外することができます。
例えば、以下のようにコマンドを実行します。
pyinstaller --exclude-module module_name script.py
ここで、module_name
は除外したいモジュールの名前、script.py
は変換したいPythonスクリプトのファイル名です。
特に、NumPyをインストールしている環境であるにも関わらず、Numpyを使用していない場合は、除外することをおすすめします。
--exclude-module
では1モジュールしか除外できないので、複数除外したい場合は、モジュールごとに--exclude-module
コマンドが必要です。
pyinstaller --exclude-module numpy --exclude-module pandas script.py
少々面倒な仕様なので将来的に改善されるかもしれない(カンマ区切りで指定できるなど)ですが、個別に除外するようにしてください。
–excludeでも除外可能です
--exclude-module
ではなく--exclude
パラメータでも、特定のモジュールを除外することもできます。
以下のようにコマンドを実行します。
pyinstaller --exclude module_name script.py
ここでも、module_name
は除外したいモジュールの名前、script.py
は変換したいPythonスクリプトのファイル名です。
モジュールの除外の注意点
--exclude-module
を使ったモジュールの除外は、コード内でそのモジュールを使用しているかどうかに関わらず除外されます。
例えば、NumPyモジュールを使用しているにも関わらず、--exclude-module numpy
を含めてexe化しようとするとModuleNotFoundErrorやFileNotFoundErrorなどが発生します。
モジュール除外でエラーが増えた場合は、どこかでそのモジュールを使用しているということなので、除外しないようにしましょう。