Python

【pyinstaller】Pythonをexe化する方法

Pythonで作成されたスクリプトを他のPCで動かしたい場合は、Python環境の準備、ライブラリの準備などが必要となり大変です。

そこでPythonスクリプトを実行ファイル化し、すべてを1つにまとめることで簡単に他のPCでも動かすことが可能となります。

この記事では『pyinstaller』モジュールを使用して、Pythonスクリプトを実行ファイルにする方法を解説したいと思います。

pyinstallerのインストール

『pyinstaller』モジュールのインストールは次のコマンドで可能です。

pip install pyinstaller

pyinstallerの使用方法

1つの実行ファイルにまとめるには次のコマンドで行います。

pyinstaller Pythonファイル名 --onefile

上記、コマンドを実行すると『dist』というフォルダの中に『ファイル名.exe』でexeファイルが作成されています。

実行ファイルパスの参照について

実行ファイルのパスを「os.path.dirname(__file__)」で取得する場合、「exe化前(.py)」と「exe化後(.exe)」で結果が異なります。
今回、実行したディレクトリは「C:\Python\pyinstaller」です。

「exe化前(.py)」の結果 C:\Python\pyinstaller
「exe化後(.exe)」の結果 C:\Users\ユーザ名\AppData\Local\Temp_MEI68602
 

「exe化後(.exe)」の実行ファイルのパスは『os.path.dirname((sys.executable)』を使用して取得できます。
ただし、「exe化前(.py)」の実行ディレクトリは想定通りの値が取得できなくなります。

「exe化前(.py)」の結果 C:\Users\ユーザ名\AppData\Local\Programs\Python\Python310
「exe化後(.exe)」の結果 C:\Python\pyinstaller

ですので、「exe化前(.py)」と「exe化後(.exe)」のどちらも想定した通りのパスを取得する為にはexe化した場合とexe化していない場合で処理を振り分ける必要があります。

import os
import sys
if getattr(sys, 'frozen', False):
    print(os.path.dirname((sys.executable)))
else:
    print(os.path.dirname(__file__))