自分が作ったPythonアプリを配布!「インストーラー化」を新人エンジニアに解説
こんにちは。ゆうせいです。
Pythonでデスクトップアプリケーション(GUIアプリ)が完成!
「やったー!これで先輩や友人にも使ってもらえるぞ!」
…と喜んだのも束の間。
「あれ、この.pyファイル(Pythonのコード)をどうやって渡せばいいんだ?」
「相手のPCにPythonが入ってなかったら動かないんじゃ…?」
その通り!素晴らしい疑問です。
あなたが苦労して作ったアプリも、そのままでは「開発環境(あなたのPC)でしか動かない」ただのコードです。
今日は、あなたのPythonアプリを、誰のPCでもダブルクリックするだけで簡単に使える「ちゃんとしたアプリ(インストーラー)」に変身させる方法を解説しますね。
なぜ「インストーラー化」が必要なの?
あなたのPCでは、Python本体や、Tkinter、PyQtなどのライブラリがすべてインストールされているため、.pyファイルを実行すればアプリが動きます。
しかし、友人のPCにはどうでしょうか?
- そもそもPythonがインストールされていないかもしれません。
- Pythonは入っていても、あなたのアプリが必要とするライブラリ(例:
pandasやcustomtkinter)が入っていないかもしれません。
これでは、アプリを使ってもらうために「まずPythonの3.10をインストールして、次にpip install ...でこれを追加して…」と、相手に複雑な「環境構築」を強いることになってしまいます。
そんなの、絶対に面倒くさがられて使ってもらえませんよね?
「インストーラー化」とは、あなたのPythonコード、それが依存するライブラリ、さらにはPython実行環境そのものまで、すべてを「一つの実行可能ファイル(.exeなど)」にギュッと梱包(こんぽう)する作業を指します。
これさえ作れば、相手はPythonの「パ」の字も知らなくても、ダブルクリックするだけであなたのアプリをインストールし、使えるようになるのです!
どうやって作るの? 代表的なツール2選
Pythonアプリをインストーラー化(実行可能ファイル化)するための、代表的なライブラリを2つ紹介します。
1. PyInstaller (パイインストーラー)
最も有名で、多くの人に使われている定番ツールです。
- 例えるなら?
- 「強力な圧縮パッキングマシン」
- 特徴:
- あなたの
.pyスクリプトと、それが使っているライブラリを解析し、必要なものだけを自動で集めてくれます。 - Windowsなら
.exeファイル、Macなら.appファイルという、OS標準の実行可能ファイルを生成します。
- あなたの
- 使い方(イメージ):
- まず、
pip install pyinstallerでこのツール自体をインストールします。 - ターミナルで、あなたのメインのPythonファイル(例:
main.py)に対して、コマンドを打ちます。
# オプション例: --onefile(全てを1つのexeファイルにまとめる) # オプション例: --noconsole(実行時に後ろの黒い画面を出さない) pyinstaller --onefile --noconsole main.py - まず、
- メリット:
- 非常に多機能で、オプション(設定)が豊富です。
- 多くのライブラリに対応しており、実績が豊富です。
- デメリット:
- 多機能ゆえに、オプションが少し難しいかもしれません。
- ライブラリの依存関係が複雑だと、うまく梱包できない場合があります。
2. cx_Freeze (シーエックス・フリーズ)
PyInstallerと並んでよく使われる、もう一つの強力なツールです。
- 例えるなら?
- 「精密な冷凍保存マシン」
- 特徴:
- PyInstallerと考え方は似ていますが、こちらは
setup.pyという「設定ファイル」を自分で書いて、より細かく梱包内容を制御することが多いです。
- PyInstallerと考え方は似ていますが、こちらは
- メリット:
setup.pyを書くことで、複雑なプロジェクトでも柔軟に対応できます。
- デメリット:
- PyInstallerより少しだけ設定(
setup.pyの記述)に手間がかかる印象があります。
- PyInstallerより少しだけ設定(
「インストーラー」と「実行ファイル」の違い
ここで、少し言葉を整理しましょう。
- 実行可能ファイル化 (Freezing):
- これは、
PyInstallerやcx_Freezeが直接行う作業です。 - Pythonコードやライブラリを、
.exeや.appという「単体で動くファイル」に固める(Freeze=凍らせる)ことを指します。 - これだけでも配布は可能ですが、ファイルが
distフォルダなどに無造作に置かれるだけです。
- これは、
- インストーラー化 (Installer):
- 上記で作った「実行可能ファイル」を使って、さらに「インストールウィザード(セットアップ画面)」を作ることを指します。
- 「次へ」「次へ」「同意する」と押していくと、プログラムが「C:\Program Files」にコピーされ、デスクトップにショートカットが作られる、あの見慣れた流れです。
cx_Freezeはインストーラー作成機能も持っていますし、Inno Setupのような専門のインストーラー作成ツールとPyInstallerを組み合わせることもあります。
新人エンジニアのあなたは、まずは「1. 実行可能ファイル化」を目指しましょう。
PyInstallerで生成された.exeファイルをZIPファイルにまとめて渡すだけでも、相手の利便性は劇的に向上します!
今後の学習の指針
いかがでしたか?
「作る」技術だけでなく、「届ける」技術も、エンジニアにとって非常に重要です。
あなたの次のステップは、自分の作ったデスクトップアプリ(TkinterやPyQtなどで作ったもの)を、PyInstallerを使って.exeファイルに変えてみることです。
pip install pyinstallerと実行して、
pyinstaller --onefile --noconsole あなたのアプリ.pyというコマンドを試してみてください。
distというフォルダが作られ、その中にあなたのアプリの.exeファイルができていれば成功です!
それを(Pythonが入っていない)家族や友人のPCで動かしてみてください。
あなたのコードが、あなたのPCを飛び出して動いた瞬間、きっと大きな達成感を感じられるはずですよ!