ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【python/tkinter/pyinstaller】tkinterで作ったGUIをexe化する

 以前の記事でtkinterを使ってpythonで簡単なGUIを作ってみました。

 作ったGUIは環境構築ができていない人に配布することも考えられるので、最終的にはexe化することになると思います。

 なので今回はtkinterで作ったものをexe化する方法の備忘録になります。


 では、始めます。


1:pyinstallerのインストール
 pythonソースコードをexe化するにはいくつか手段があるようですが、今回はpyinstallerを使います。

 pyinstallerのインストールは簡単で以下のpipコマンドを実行することでインストールできます。

$ pip install pyinstaller

 pyinstallerがちゃんとインストールできているかは、以下のコマンドを実行してエラーなくバージョン情報が表示されるかで確認ができます。

$ pyinstaller -v


2:pyinstallerでexe化
 実際にpyinstallerを使って冒頭の記事にある「tkinter_sample.py」をexe化してみます。

 まず最初にPowerShellなどを立ち上げ「cd」コマンドで対象ソースコードが存在する階層へ移動します。

 その後以下のコマンドを実行します。

$ pyinstaller tkinter_sample.py --name tkinter_sample.exe --onefile --noconsole

 色々な表示が出る中しばらく待って以下のように「completed successfully」と表示されればexe化は完了です。

 INFO: Building EXE from EXE-00.toc completed successfully.

 コマンド実行後、対象のpythonファイルと同じ階層に色々とフォルダやファイルができていますが、「dist」というフォルダの中にexeファイルが作られています。
f:id:rikoubou:20220120162641p:plain
f:id:rikoubou:20220120162751p:plain

 このdistフォルダ内に作られたexeをダブルクリックで起動させれば、pythonファイルを実行した時と同じものが実行されます。


3:pyinstallerのコマンドオプション
 今回使ったpyinstallerのコマンドのオプションについて少し説明します。今回使ったオプションは以下になります。

書き方 内容
-n [NAME], --name [NAME] exe化する時のファイル名を指定する
-F, --onefile 一つのexeファイルにまとめる
-w, --windowed, --noconsole exe起動時にコンソール画面を出さない

 なので2で実行したコマンドは「tkinter_sample.exeという1ファイルにまとめ、起動時にコンソール画面を出さないようにする」という形でビルドしたことになります。
 ちなみに「--onefile」オプションを入れない場合はdist内に無数のファイルが作成され、exeファイルは作成されないので必ず指定するようにしてください。

 この他にも色々とオプションがありますが、とりあえずexe化するというだけであればこれらのオプションを知っていればなんとかなるかと思います。


 以上がtkinterで作ったGUIをexe化する方法になります。

 exe化した時のアイコン画像を設定したい、などまだ色々ありますが、それは調べてから別の記事にでもしようかと思います。


・参考資料