
マイケル
みなさんこんにちは!
マイケルです!
マイケルです!

エレキベア
クマ〜〜〜〜

マイケル
今日はPythonファイルをexe、app化する方法について紹介するよ!

エレキベア
そんな方法があったクマね

マイケル
Pythonスクリプトをexe化するライブラリとしては
・Pyinstaller
・cx_Freeze
が有名だけど、今回は動作が速いが情報が少ない
と言われる cx_Freeze を使ってみます!
・Pyinstaller
・cx_Freeze
が有名だけど、今回は動作が速いが情報が少ない
と言われる cx_Freeze を使ってみます!

エレキベア
英語で読めないクマ・・・

マイケル
とりあえず触っていこう!
cx_Freezeのインストール

マイケル
まずcx_Freezeのインストールについては簡単で、
下記のようにpipコマンドでインストールするだけですね!
下記のようにpipコマンドでインストールするだけですね!
↑cx_Freezeのインストール

エレキベア
簡単クマ〜〜〜
クリッカーアプリのexe、app化

マイケル
インストールができたら早速使っていきましょう!
まずは下記のシンプルなクリッカーアプリをexe化してみます!
まずは下記のシンプルなクリッカーアプリをexe化してみます!
↑クリッカーアプリ

マイケル
exe化するには、Pythonスクリプトのディレクトリにsetup.pyという設定ファイルを記述する必要があります。
書き方は下記の公式ドキュメントを参照しましょう!
書き方は下記の公式ドキュメントを参照しましょう!

エレキベア
いろんなオプションがあるクマね
Windows

マイケル
exeファイルはWindowsで実行することで作成できます。

マイケル
setup.pyの一番シンプルな書き方は下記になります。
今回のアプリは公式ページの記述から、アプリ名と読み込むスクリプト名のみ変更するだけで良さそうです。
今回のアプリは公式ページの記述から、アプリ名と読み込むスクリプト名のみ変更するだけで良さそうです。
↑setup.pyの記述

マイケル
このファイルを作成したディレクトリで
python setup.py build コマンドを実行しましょう!
python setup.py build コマンドを実行しましょう!

マイケル
実行するとディレクトリにbuildフォルダが作成され、
その中にexeファイルが出力されます。
その中にexeファイルが出力されます。
↑exeファイルが出力される

エレキベア
これだけで出力されるクマか

マイケル
実行しても下記のように正常に起動するかと思います!
↑exeファイル実行結果
Mac

マイケル
同じようにappファイルも作成してみましょう!
setup.pyについてはWindowsと同様になります。
setup.pyについてはWindowsと同様になります。

マイケル
そしてappファイルを作成するコマンドは python setup.py bdist_mac になります。
このコマンドを実行すると、 実行ファイル作成 -> appファイルとしてまとめる 処理を流れで行ってくれます。
このコマンドを実行すると、 実行ファイル作成 -> appファイルとしてまとめる 処理を流れで行ってくれます。

マイケル
実行すると、こちらもbuildフォルダ配下にappファイルが作成されていることが分かります。

マイケル
実行しても正常に動かすことができました!

エレキベア
ちょろいクマ〜〜〜
パズルゲームのexe、app化

マイケル
シンプルなクリッカーアプリで試してみましたが、
今度はもう少し複雑なアプリをexe化してみましょう!
今度はもう少し複雑なアプリをexe化してみましょう!

マイケル
というわけで、以前作ったPythonのパズルゲームをexe化してみようと思います。

エレキベア
(なつかしいのを出してきたクマ・・・。)
Windows

マイケル
とはいえ、setup.pyの記述は基本的にはクリッカーアプリと同じになります。
しかし今回は画像ファイルを読み込む必要があるため、include_filesに画像ファイルのフォルダを指定 することで画像ファイルも同梱しています。
しかし今回は画像ファイルを読み込む必要があるため、include_filesに画像ファイルのフォルダを指定 することで画像ファイルも同梱しています。
↑画像ファイルのinclude

マイケル
合わせてPythonスクリプトも少し修正します。
画像ファイルを実行ファイルのパスから読み込む必要があるため、下記のようにパスを指定するよう修正しました。
画像ファイルを実行ファイルのパスから読み込む必要があるため、下記のようにパスを指定するよう修正しました。
↑画像読み込みパスの修正

マイケル
この状態で python setup.py build を実行すると、
Exeファイルのディレクトリにimagesフォルダも同梱されることが確認できます。
Exeファイルのディレクトリにimagesフォルダも同梱されることが確認できます。
↑imagesフォルダも同梱される

マイケル
exeファイルを実行すると、正常に起動することができました!

エレキベア
やったクマ〜〜〜
Mac

マイケル
Macのsetup.pyも同じように作成します。
include_filesに画像ファイルパスを指定しましょう!
include_filesに画像ファイルパスを指定しましょう!
↑画像ファイルパスの指定

マイケル
今回はついでにアイコンパスを指定してみました。
appファイル作成はbdist_mac_optionsオプションで指定することができます。
※手抜きのためアイコンはpngファイルを指定していますが、本来は「.icns」拡張子のものを用意して指定しましょう!
appファイル作成はbdist_mac_optionsオプションで指定することができます。
※手抜きのためアイコンはpngファイルを指定していますが、本来は「.icns」拡張子のものを用意して指定しましょう!

マイケル
この状態で python setup.py bdist_mac コマンドを実行すると、appファイルが作成されます。

エレキベア
imagesフォルダはどこにあるクマ??

マイケル
いいところに気がついたね!
Includeされたフォルダは、下記のように「~.app/Contents/MacOS」の中に格納されているよ!
Appファイルはこのように実行ファイル等を同梱しているんだね。
Includeされたフォルダは、下記のように「~.app/Contents/MacOS」の中に格納されているよ!
Appファイルはこのように実行ファイル等を同梱しているんだね。
↑appファイルの中に同梱される

マイケル
実行もこのようにうまくいきました!

エレキベア
だいぶ分かってきたクマ〜〜〜
おわりに

マイケル
というわけで今回はcx_Freezeを使ってみました!
どうだったかな?
どうだったかな?

エレキベア
思ったより手軽にexeファイル化できて感心したクマ

マイケル
今回の例は簡単だったけど、使用するライブラリが増えてくると、
setup.pyの内容も複雑になってくるかと思います!
そういった深いところは地道にエラーログを見ながら対処していくしかなさそうだね・・・
setup.pyの内容も複雑になってくるかと思います!
そういった深いところは地道にエラーログを見ながら対処していくしかなさそうだね・・・

エレキベア
本当の勝負はこれからクマね・・・

マイケル
とはいえ作ったツールをちゃんとexe、app化できると気持ちいいね!
これから積極的に使っていこう!
これから積極的に使っていこう!

マイケル
それでは今日はこの辺で!
アデュー!!
アデュー!!

エレキベア
クマ〜〜〜〜〜
【Python】Pythonスクリプトをexe、app化する【cx_Breeze】 〜完〜