PyInstallerの起動高速化と–onedir活用術

この記事は約2分で読めます。
スポンサーリンク

Pythonで作成したスクリプトを手軽に実行ファイル(exe)化できるPyInstallerは非常に便利ですが、「起動が遅い」「ファイルサイズが大きい」といった課題もよく指摘されます。特に配布や業務利用を考えると、起動速度の最適化は重要なポイントです。ここでは、PyInstallerの起動高速化のコツと、--onedirオプションの活用方法について解説します。

PyInstallerの起動が遅くなる理由

PyInstallerには主に2つの配布形式があります。

  • –onefile
    すべてのファイルを1つの実行ファイルにまとめる形式。配布は簡単ですが、実行時に内部で一時フォルダへ展開・解凍するため、起動が遅くなるというデメリットがあります。
  • –onedir
    実行ファイルと必要なライブラリ・リソースを1つのディレクトリにまとめる形式。ファイル数は増えますが、展開処理が不要なため起動が速いのが特徴です。

–onefileと–onedirの起動速度比較

オプション起動速度配布形態備考
–onefile遅い(数秒~数十秒)単一ファイル一時展開が発生
–onedir速い(1秒未満~数秒)フォルダ配布展開不要、起動が高速
  • –onefileは、実行時にすべてのリソースを一時フォルダに解凍してからプログラムを起動します。そのため、ファイルサイズや依存ライブラリが多い場合、起動に5秒以上かかることも珍しくありません
  • –onedirは、すでに必要なファイルがディレクトリ内に展開されているため、ほぼ即時に起動できます。

起動高速化のためのポイント

  • –onedirオプションを使う
    配布時に多少ファイル数が増えても、起動速度を重視するなら–onedirが最適です。
  • 不要なライブラリを除外する
    --excludeオプションで使わないライブラリを除外し、ファイルサイズと起動時間を削減できます。
  • Anaconda環境を避ける
    Anaconda環境は依存ライブラリが多くなりがちなので、シンプルなPython環境でビルドするのが望ましい。

まとめ

  • PyInstallerの–onefileは配布が簡単だが、起動が遅くなる(一時展開処理のため)。
  • –onedirを使うことで、起動速度を大幅に改善できる
  • 配布形態や用途に応じて、–onefileと–onedirを使い分けるのがベスト

起動速度を重視するアプリケーションや、業務効率化ツールの配布には、–onedirオプションの活用をぜひ検討してみてください。

コメント

タイトルとURLをコピーしました