Python GUIアプリをexe化する方法を説明する。exe化で生成されるファイル拡張子はMacの場合は.app、Windowsの場合は.exeだが、本書では便宜上両者ともexeファイルと呼ぶ。下記アプリを例に説明する。
![](https://python.kazunoriri.com/wp-content/uploads/2022/08/test06-7.gif)
今回exe化するPythonファイルはyoshihiko0.py。
![](https://python.kazunoriri.com/wp-content/uploads/2022/05/スクリーンショット-2022-05-05-13.34.29-1-1.png)
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
オプション
–noconsole | exeファイル実行時にコンソールが表示されないようにする |
–onefile | ファイルを単体で実行可能にする |
–exclude-module [モジュール名] | 指定したモジュールをexe化に含めないという意味。PyInstallerはPython環境にインストールされているモジュールは例えexe化するアプリで使用していなくても一緒にexe化してしまうためexeファイルのサイズが大きくなってしまう。–exclude-moduleで指定したモジュールはexe化に含まれなくなるのでexeファイルのファイルサイズを小さくすることができる。複数指定したい場合は–exclude-module [モジュール名] –exclude-module [モジュール名]と続けて入力する。 |
実行結果
![](https://python.kazunoriri.com/wp-content/uploads/2022/05/スクリーンショット-2022-05-05-13.49.51-1024x590.png)
exeファイル
実行が終了するとbuildフォルダ、distフォルダ、.specファイルが生成され、distフォルダの中にexeファイルが生成される。
![](https://python.kazunoriri.com/wp-content/uploads/2022/05/スクリーンショット-2022-05-05-13.53.01.png)
このexeファイルは単体で動作するので、exeファイルだけ残してその他(buildフォルダ、distフォルダ、.specファイル)は削除してしまっても構わない。例えばデスクトップにexeファイル単体だけ移動しても実行可能である。
![](https://python.kazunoriri.com/wp-content/uploads/2022/08/スクリーンショット-2022-08-05-6.44.48-1024x487.jpg)
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を置く。
![](https://python.kazunoriri.com/wp-content/uploads/2022/05/スクリーンショット-2022-05-05-14.20.41.png)
3. このままではパーミッションエラーになるためターミナルを立ち上げmake_exe.commandが有るフォルダに移動し以下コマンドを入力することでパーミッションを書き換える。
chmod u+x make_exe.command
![](https://python.kazunoriri.com/wp-content/uploads/2022/05/スクリーンショット-2022-05-05-14.24.05-1024x131.png)
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化する方法を説明した。
コメント