cx_Freezeで作成した実行ファイルのファイルサイズを減らす方法 | Python

この記事ではcx_Freezeで作成した実行ファイルのファイルサイズを減らす方法を紹介します。
スポンサーリンク


何もしないときのファイルサイズ

以下のサンプルコードに対してcx_Freeezeを作成して実行ファイル(exeファイル)を作成してみます。
main.py
print("これはテストです。")
setup.py
from cx_Freeze import setup, Executable

exe = Executable(
    script="main.py"
)

setup(
    name = "APP NAME",
    description = "DESCRIPTION",
    executables = [exe]
)

作成した実行ファイルのあるフォルダのサイズ確認すると下図のように14MBのファイルサイズがあることがわかります。

原因

上記の例では高々printの1文しかないのに14MBもファイルサイズは結構大きいですよね。
では、原因は何なんでしょうか。

答えは不要ライブラリを実行ファイルに含んでいるからです。

さきほどのサンプルコードにおいて、cx_Freezeでexeファイルとともに作成されたlibフォルダの中を見ると下図のようになっています。
上図からわかるように不要なライブラリが含まれていることがわかります。
(私のPCはそこまで大量のPythonライブラリをインストールしてないので14MBとなっていましたが、大量のPythonライブラリをインストールしているPCで実行ファイルを生成するともっと大きなファイルサイズになるかと思います)

対処方法

上記の通り、不要のライブラリが含まれているためにファイルサイズが大きくなってしまっていたので、対処方法としては不要ライブラリを除外する設定をしてあげればOKです。

以下が不要なライブラリを除外する設定をしたsetup.pyファイルです。

setup.py
from cx_Freeze import setup, Executable

exe = Executable(
    script="main.py"
)

excludes = [
    "asyncio",
    "email",
    "html",
    "http",
    "multiprocessing",
    "xml"
]

setup(
    name = "APP NAME",
    description = "DESCRIPTION",
    executables = [exe],
    options = {
        "build_exe" : {
            "excludes" : excludes
        }
    },
)

上記のように記述することで不要のライブラリをビルドから除外することができます。

もしエラーが出る場合は必要なライブラリまで除外している可能性が高いので、その場合には除外対象から外しましょう。


上記のサンプルコード実行で作成された実行ファイルのファイルサイズは11MBと、ライブラリの除外設定をしなかったときの14MBから3MBだけ削減することができました。

まとめ

この記事ではcx_Freezeで作成した実行ファイルのファイルサイズが大きい原因とその対処方法(ファイルサイズを減らす方法)を紹介しました。

この記事の内容を実施しても10MB未満にすることは残念ながら難しいですが、PCに大量のPythonライブラリをインストールしている場合は劇的にファイルサイズを小さくすることができるかと思います。

Pythonの実行ファイルのファイルサイズで悩んでいる方の参考になれば幸いです。
スポンサーリンク

この記事が有用でしたら、↓にあるSNSボタン…
この記事が有用でしたら、↓にあるSNSボタンからご友人にご共有いただけますと幸いです!
Python
ASP Androidアプリ開発以外

プログラミングスキルを習得して業務/転職/副業に活かしたい方へ
これからの時代は終身雇用が崩壊し、自分のスキルで食べていく時代が到来します。 そのような時代の中で、プログラミングのスキルは単純なプログラム開発業務だけではなく、データ解析などあらゆる業務で普遍的に使用できる非常に有益なスキルと考えられます。 目先の業務や将来の転職に備えて、プログラミングのスキルを習得するのはいかがでしょうか?

プログラミングを生かした副業も非常にオススメです。 転売などの手を止めると稼ぎがなくなってしまう副業と違い、 アプリやサイト運営などプログラミングを使用した副業の一部は一度公開してしまえばその後は放置しても継続してお金を稼ぐことができるという非常に良い特性があります。

一方で業務/転職/副業で活かせるレベルまでプログラミングを習得しようとすると、質問ができない独学では限界があり、挫折してしまうことが多いでしょう。

そんなときは下記のような質問しながら学習を進められるオンライン上のプログラミングスクールがオススメです!

無料体験や無料カウンセリングなどもありますので、まずは確認だけでもしてみてはいかがでしょうか?

Tech Academy
Aresei-note