この記事では、開発したPythonスクリプトを別のPCに配布する方法を記述します。
目次
想定する状況
- Python環境構築がされていない別のPCで実行したい
- 開発側はPythonの環境構築が完了済み
- 開発側PCも実行側PCもWindowsを使用している
手段
Pythonスクリプトをexeファイルにすることで、上記要望を満たします。
そのためのツールはいくつかありますが、今回は以下の2つを試してみました。
どちらも一長一短の性能です。
- PyInstaller
- nuitka
PyInstaller
インストール
pipコマンドでインストールします。
pip install pyinstaller
ビルド
exe化したいスクリプトがあるディレクトリで、下記コマンドを実行します。
スクリプトが依存する別のスクリプトやライブラリは、全て自動でexeファイルの中に詰め込まれます。
myscript.pyが目的のスクリプトです。
pyinstaller myscript.py
実行すると二つのフォルダが作られます。
フォルダ名 | 説明 |
---|---|
build | ビルド時に使う中間フォルダ |
dist | exeファイルが出力されるフォルダ |
オプション
ビルド時に指定できるオプションの例です。
オプション | 説明 |
---|---|
–onefile | 通常、distフォルダ内に複数のファイルが作られる。 このオプションをつけると、exeファイル1枚にまとめることが可能。 |
–noconsole | 通常、exeファイルを実行するとコンソールウィンドウが表示される。 このオプションをつけると、非表示になる。 いつ実行が終了したか分かりづらくなる問題がある。 |
例えば、以下のように実行します。
pyinstaller myscript.py --onefile
Nuitka
インストール
pipコマンドでインストールします。
pip install nuitka
ビルド
exe化したいスクリプト(myscript.py)があるディレクトリで、下記コマンドを実行します。
nuitka myscript.py
実行すると二つのフォルダが作られます。
フォルダ名 | 説明 |
---|---|
myscript.build | ビルド時に使う中間フォルダ |
myscript.dist | exeファイルが出力されるフォルダ |
オプション
ビルド時に指定できるオプションの例です。
オプション | 説明 |
---|---|
–standalone | exeファイルをPython環境なしで動作可能にする。 |
–onefile | exeファイルを1枚にまとめる。 |
–windows-disable-console | exeファイルを実行したときのコンソールウィンドウが非表示になる。 |
比較
上記で分かる通り、使い勝手はどちらもほぼ同じです。
どちらを使うか以下の点で決めます。
比較項目 | PyInstaller | Nuitka |
---|---|---|
知名度 | ○ | △ |
ビルドの速さ | ○ | × |
exeファイルサイズ | × | ○ |
exeファイルの実行速度 | × | ○ |