エンジニア的な事を何かしらアウトプットしておくブログ

エンジニア的じゃないブログはこちら→ http://kconcon3.hatenadiary.jp/

Pythonのスクリプトをexeファイル(実行ファイル)化する

概要

自分で作成したPythonスクリプトをexeファイル(実行ファイル)化します。
Pythonがインストールされていない環境でも作成したpythonスクリプトが動作するようになります。

exeファイル化するツールはいくつかあるようですが、今回は"pyinstaller"を使用しました。

今回使用した環境

Windows7 Pro 64bit
Anaconda3 5.0.1(Conda 4.3.30 / Python 3.6.1)

準備

Pythonのpyinstallerモジュールをpipでインストールします。
1. Anaconda Promptを起動
2. pipでpyinstallerモジュールをインストール

pip install pyinstaller


インストールが出来たら以上で準備完了です。

あとはexeファイル化したいPythonスクリプトを用意して下さい。
今回は下記の作業フォルダとスクリプト名でテストしました。

・作業フォルダ C:\PythonTest
Pythonスクリプト Test01.py

exeファイル化

引き続きAnaconda Prompt上で作業します。
用意した作業フォルダに移動

cd C:\PythonTest

いよいよexeファイルに変換

pyinstaller Test01.py

これだけです!
変換には数分かかる時もありましたので時間がかかっても少々待ちましょう。

変換に成功すると作業フォルダ内に下記のフォルダとファイルが生成されます。

__pycache__  
build  
dist
Test01.spec  


exeファイルの起動

生成されたdistフォルダをエクスプローラーで開くと、Test01フォルダがありますので、Test01フォルダの中をさらに開いて下さい。
Test01フォルダ内に、Test01.exe がありますので、これをダブルクリックするとexe化されたPythonスクリプトが起動します。
スクリプトに問題が無ければ動作するはずです。

Test01フォルダごと他のWindowsマシンへ移動させて起動する事も確認し、openCV、pyautogui、を使ったサンプルプログラムの動作も確認しました。


補足

変換をする時に --onefile オプションを付けると1ファイル化(exeファイルのみ)してくれます。
ただ、1ファイル化したexeファイルの方が起動が遅いようです。(1ファイル化してないexeは1秒くらいで起動、1ファイル化したexeは4秒くらいで起動)
いくつも試したわけではないので正確な情報か分かりませんが、念の為。