【pyinstaller】Pythonでツールを作ったらEXEファイルにして共有してみよう!
ナカジ(@cp_nakajun)です。
ちょっとした集計作業、これが毎日同じ作業となると面倒くさい。
簡単にできるツールはないかな?…マクロを組むか…
いや、いい機会だから勉強がてらPythonでやってみよう!スキルあげて他のことにも応用できるし
という僕がいたのは事実です…
僕は簡単なものしか作れません、それぐらいのプログラムのEXE化は簡単です。
(複雑なものになると今回の方法では難しいのかもしれないが)
ツールはやはり便利ですし、EXE化しておくとPythonの環境がなくても使えます。
僕のスキルレベルのコトはおいといて
要は「どんなに簡単なツールでも作ったら共有すると喜んでもらえる」かもしれないので共有してみよう!ということです。
そのためにpythonスクリプトをEXEファイル(windowsの実行形式)にする方法を残しておきます。
pyinstallerでPythonファイルをexe化する
最初にEXEファイルについて引用します。
EXEファイルとは、主にWindowsで使用されている、拡張子に「.exe」が付く実行ファイルのことである。クリックするとプログラムが自動的に実行されるようになっている。
EXEファイルに記述されているプログラムは、コンパイルされた後のオブジェクトコードで構成されている。このためコンピュータはEXEファイルを直接に実行できる。
(引用:EXEファイルとは何? Weblio辞書)
EXE(実行ファイル)にすることでpython環境がないPCでも使うことができるようになります。
pyinstallerのインストール
python環境にpyinstallerというライブラリをインストールします。
pip install pyinstaller
オリジナルアイコンを準備する
これは「必須ではありません」が、せっかくなのでオリジナルのアイコンを準備してみましょう。
あとでEXE化するときにアイコンを指定しない場合はデフォルトのpythonアイコンになるのでアイコンは準備しなくても大丈夫です。
僕は以下のWEBサービスを利用してみました。
上記のようなサービスを利用して拡張子が[.ico]のファイルを準備してください。
pyinstallerでPythonスクリプトをEXE化
ここまで触れませんでしたが、EXE化したいPythonのスクリプトファイル(.py)の準備もしてください。
pyinstallerでPythonスクリプトをEXE化するにはコマンドプロンプトで以下のコマンドを実行します。
EXE化するPythonファイルは「ScriptName.py」になります。
実際はパスのタイピングが面倒なのでファイルをコマンドプロンプトにドラッグ&ドロップでいいと思います。
pyinstaller --onefile ScriptName.py
[–onefile]をつけることで1つのEXEファイルにまとまります。
[–onefile]オプションをつけないとEXEの実行に必要な複数のファイルと共に出力されるので、基本的には[–onefile]をつけた方が目的に合いますね。
また、オリジナルアイコンを設定する場合はpyinstallerでビルドする際のコマンドに[–icon]オプションをつけます。
pyinstaller --onefile --icon=icon.ico ScriptName.py
この時、「icon.ico」は自分のアイコンファイル名にしてください。
EXEファイルが出力されるディレクトリ
先のコマンドを実行し、処理が終わると以下のディレクトリにEXEファイルが出力されています。
C:\Users\ユーザー名\dist
デスクトップなど、好きな場所に持っていって試してみましょう!
上手く動いたら、周りの人におすそわけすると喜んでもらえるかもしれません。
※追記:2020/9/27
pyinstallerでEXE化すると起こる問題のとりあえずの対処について書きました。