Python

【Python】Pythonファイルを実行ファイルに変換する方法【exe化】

この記事では、Pythonファイル を実行ファイルに変換する方法を解説します。

実行ファイル化(exe化)することで Python がインストールされていない環境でも Pythonプログラム を実行することができます

それにより作成したプログラムを配布したりすることができます。

それでは、exe化する方法を見ていきましょう!

実行ファイルとは?

実行ファイルとは、exeファイル(エグゼファイル) や execファイル などの総称で、ダブルクリックするだけで処理を実行できるファイルのことを言います。

実行ファイルは、必要な環境(ここではPyhton)がインストールされていない場合でも処理を実行することができます。

それにより、幅広く配布が可能となります。

実行ファイル化(exe化)

それでは、Pythonファイル を実行ファイルに変換する方法を見ていきましょう!
ここでは 人気の高い pyinstaller を使用します。

pyinstallerのインストール

pipコマンド を使ってインストールします。

pip install pyinstaller

pyinstallerの使い方

pyinstallerコマンド を使って以下のように exe化 します。

pyinstaller スクリプト名

実行ファイル化してみる

試しに適当な Pythonファイル を実行ファイル化してみましょう!
今回は、以下の test.py を使います。

test.py

print('Hello world')

そしたら、ターミナルなどのコマンドラインから以下のコマンドを実行します。

pyinstaller test.py

実行するといろいろ表示され、

$ pyinstaller test.py                                        
239 INFO: PyInstaller: 4.5.1
239 INFO: Python: 3.9.0
268 INFO: Platform: macOS-10.15.7-x86_64-i386-64bit
277 INFO: wrote /Users/user/Desktop/Python/test.spec
411 INFO: UPX is not available.
413 INFO: Extending PYTHONPATH with paths
['/Users/user/Desktop/Python', '/Users/user/Desktop/Python']
713 INFO: checking Analysis
714 INFO: Building Analysis because Analysis-00.toc is non existent
・
・
・
略

test.py と同じディレクトリに複数のディレクトリやファイルが作成されます。

実行ファイルは、distディレクトリ に格納されています。

見つけたらダブルクリックで実行してみましょう!
すると、以下のように Hello world が出力されました。

オプション

1つのファイルにまとめる

--onefileオプション を付けることで、1つのファイルにまとめることができます。

pyinstaller test.py --onefile

以下のように1つのファイルにまとめられてスッキリします。

コンソールを表示しない

--noconsoleオプション を付けることで、実行ファイルを処理しているときにコンソールを表示できなくします。

pyinstaller test.py --noconsole

GUIアプリケーションなどを実行ファイル化する際に指定します。

実行ファイル名の指定

--nameオプション を付けて名前を指定することで実行ファイル名を指定できます。

pyinstaller test.py --name mytest --onefile

mytest という名前で実行ファイルが作成されました。

他にも様々オプションが用意されています。詳しくは公式サイトを参照してください。

LinkOptions - Using PyInstaller — PyInstaller 4.5.1 documentation

エラーが発生した時の対処法

エラーを特定する

pyinstaller は、環境によって様々なエラーが発生します。そんな時は、--noconsoleオプション を外し、--debug allオプション を付けましょう!

pyinstaller スクリプト名 --debug all

すると、実行ログが可視化されるのでデバッグしやすくなります。

pyenvを使っている場合

pyenv を使っている場合エラーが発生することがあります。そんな時は以下のように、オプションを付けながら pyenv で使用する Python を再インストールする。

PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.9.0

LINKMacでpyinstallerを使ってPythonコードから実行ファイルを生成した時の記録(OSError: Python library not found: libpython3.7m.dylib, .Python, libpython3.7.dylibの回避) - Qiita

まとめ

この記事では、Pythonファイルを実行ファイル(exe化)にする方法を解説しました。

exe化することで環境に関係なく実行できるようにしました。
成果物を配布するのにとても便利です。

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

『DMM WEBCAMP COMMIT』