PyInstallerで作成するexeを軽量化する方法を解説

この記事では、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を使用していない場合は、除外することをおすすめします。

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化しようとするとModuleNotFoundErrorFileNotFoundErrorなどが発生します。

モジュール除外でエラーが増えた場合は、どこかでそのモジュールを使用しているということなので、除外しないようにしましょう。

目次から探す