はじめに
Python周りの環境とPythonスクリプトを1つにパッケージ化する "pyinstaller" について,紹介します.
pyinstallerのメリット・デメリット
メリット
Python環境を構築していないPCでもプログラムを実行することができるため,プログラム配布のハードルがかなり低くなります.
デメリット
作成したexeファイルのサイズが大きくなる場合があります.また,exeファイルを修正することができないため,スクリプトの修正を行う度にexe化する必要があります.
動作環境
- pyinstaller 6.2.0
pyinstallerはpipを使用してインストールできます.
pip install pyinstaller
コマンド紹介
基本構文
pyinstallerでスクリプトをパッケージングする基本構文は下記の通りです.
pyinstaller xxx.py
オプション
パッケージングの際に,いくつかのオプションを設定することができます.使用頻度が高めなものを紹介します.
--onedir
or -D
-> 出力を1ディレクトリにまとめます.
--onefile
or -F
-> 出力を1ファイルにまとめます.
--noconsole
or -w
-> コンソールを表示しません.
--clean
-> ビルド前にPyInstallerのキャッシュをクリーンアップし、一時ファイルを削除します.
--distpath DIR
バンドルされたアプリ(exファイル)を配置する場所を指定します.デフォルトは ./dist
--exclude 除外するライブラリ名
パッケージングの際に特定のライブラリを除外します.このコマンドは複数回使用できます.
pandas
とnumpy
がexeファイルの肥大化に貢献しているので,スクリプトで使用していなければ積極的に除外したいところ.
-n NAME
or --name NAME
バンドルされたアプリと仕様ファイルに名前を割り当てます.デフォルトはPythonスクリプトのベースネーム.
サンプルコード
pyinstaller test.py --onefile --noconsole --clean --exclude pandas --exclude --numpy --dispatch C:/Work --name test