Python | GUIアプリexe化方法(Mac & Windows)

GUI App

Python GUIアプリをexe化する方法を説明する。exe化で生成されるファイル拡張子はMacの場合は.app、Windowsの場合は.exeだが、本書では便宜上両者ともexeファイルと呼ぶ。下記アプリを例に説明する。

今回exe化するPythonファイルはyoshihiko0.py。

yoshihiko0.pyのコードはこちらの記事を参照。

環境

exe化するためにはPyInstallerを使用する。インストールしていない場合はpipでインストールする。

pip install pyinstaller

exe化方法

Macの場合

Macの場合はターミナルを開きyoshihiko0.pyが有るディレクトリに移動し下記を入力する。

python3 -m PyInstaller yoshihiko0.py --noconsole --onefile --exclude-module matplotlib

Windowsの場合

Windowsの場合はコマンドプロンプトを開きyoshihiko0.pyが有るディレクトリに移動し下記を入力する。

pyinstaller yoshihiko0.py --noconsole --onefile --exclude-module matplotlib

オプション

–noconsoleexeファイル実行時にコンソールが表示されないようにする
–onefileファイルを単体で実行可能にする
–exclude-module [モジュール名]指定したモジュールをexe化に含めないという意味。PyInstallerはPython環境にインストールされているモジュールは例えexe化するアプリで使用していなくても一緒にexe化してしまうためexeファイルのサイズが大きくなってしまう。–exclude-moduleで指定したモジュールはexe化に含まれなくなるのでexeファイルのファイルサイズを小さくすることができる。複数指定したい場合は–exclude-module [モジュール名] –exclude-module [モジュール名]と続けて入力する。

実行結果

exeファイル

実行が終了するとbuildフォルダ、distフォルダ、.specファイルが生成され、distフォルダの中にexeファイルが生成される。

このexeファイルは単体で動作するので、exeファイルだけ残してその他(buildフォルダ、distフォルダ、.specファイル)は削除してしまっても構わない。例えばデスクトップにexeファイル単体だけ移動しても実行可能である。

exeを配布したいとき

他の人に配布したい場合はexeファイルだけ配布すればよい。

コマンド入力自動化

batファイル化することでコマンド入力を自動化できる。

Macの場合

1. テキストエディタで以下を記載しmake_exe.commandというファイル名で保存する。

MY_DIRNAME=$(dirname $0)
cd $MY_DIRNAME
python3 -m PyInstaller yoshihiko0.py --noconsole --onefile --exclude-module matplotlib

・1行目の意味:commandファイルが有るディレクトリを取得する。
・2行目の意味:そのディレクトリに移動する。
・3行目の意味:exe化する。

2. yoshihiko0.pyが有るフォルダにmake_exe.commandを置く。

3. このままではパーミッションエラーになるためターミナルを立ち上げmake_exe.commandが有るフォルダに移動し以下コマンドを入力することでパーミッションを書き換える。

chmod u+x make_exe.command

4. exe化を行う際はmake_exe.commandをダブルクリックするだけ良い。

Windowsの場合

1. テキストエディタで以下を記載する。

pyinstaller yoshihiko0.py --noconsole --onefile --exclude-module matplotlib

2. yoshihiko0.pyが有るフォルダにmake_exe.batというファイル名で保存する。

3. exe化を行う際はmake_exe.batをダブルクリックするだけで良い。

まとめ

Python GUIアプリをexe化する方法を説明した。

コメント