Pythonスクリプトを依存関係なしで実行できるスタンドアロンの実行ファイルに変換するには、いくつかの方法があります。これにより、Pythonのインストールや外部ライブラリをクライアントに要求せずにアプリケーションを配布できます。以下では、代表的なツールを紹介し、その使用方法と特徴を解説します。
PyInstaller
PyInstallerは、Pythonスクリプトをスタンドアロン実行ファイルに変換するための最も一般的なツールです。Windows、Mac、Linuxで動作し、クロスプラットフォーム対応が可能です。
PyInstallerの使い方
PyInstallerを使ってPythonスクリプトを実行ファイルに変換する基本的なコマンドは次の通りです。
pip install pyinstaller
pyinstaller --onefile script.py
--onefileオプションを使うことで、すべての依存関係を1つのファイルにまとめた実行ファイルが生成されます。生成されたファイルはdistディレクトリに保存されます。
PyInstallerの利点
- クロスプラットフォーム対応(Windows、Linux、Mac)
- 単一のファイルにすべての依存関係をパッケージ化
- マルチスレッドやマルチプロセスのサポート
cx_Freeze
cx_Freezeは、クロスプラットフォーム対応のツールで、主にGUIアプリケーションで使用されます。PyInstallerほどの柔軟性はありませんが、WindowsとLinuxでPythonスクリプトをコンパイルするのに有用です。
pip install cx_Freeze
cxfreeze script.py --target-dir dist/
cx_Freezeは、依存関係を含む複数のファイルを生成しますが、スタンドアロン実行ファイルも作成可能です。
Cython
Cythonは、PythonコードをCに変換してコンパイルするツールです。これにより、スタンドアロン実行ファイルを作成できるだけでなく、コードのパフォーマンスを向上させることもできます。
pip install cython
cythonize -i script.py
Cythonを使用する場合、コンパイル後のコードは通常、Python実行環境が不要になりますが、コンパイルプロセスはやや複雑です。
py2exe
py2exeはWindows専用のツールで、PythonスクリプトをWindowsの実行ファイル(.exe)に変換します。ただし、現在ではPython 3でのサポートが限定的で、PyInstallerの方が一般的に使われています。
pip install py2exe
python setup.py py2exe
まとめ
Pythonスクリプトをスタンドアロンの実行ファイルに変換するためには、PyInstallerが最も簡単で広く使用されていますが、他にもcx_FreezeやCython、py2exeといった選択肢があります。それぞれのツールには特徴がありますが、目的や環境に応じて適切なツールを選ぶことが重要です。