自分が作ったPythonアプリを配布!「インストーラー化」を新人エンジニアに解説

こんにちは。ゆうせいです。

Pythonでデスクトップアプリケーション(GUIアプリ)が完成!

「やったー!これで先輩や友人にも使ってもらえるぞ!」

…と喜んだのも束の間。

「あれ、この.pyファイル(Pythonのコード)をどうやって渡せばいいんだ?」

「相手のPCにPythonが入ってなかったら動かないんじゃ…?」

その通り!素晴らしい疑問です。

あなたが苦労して作ったアプリも、そのままでは「開発環境(あなたのPC)でしか動かない」ただのコードです。

今日は、あなたのPythonアプリを、誰のPCでもダブルクリックするだけで簡単に使える「ちゃんとしたアプリ(インストーラー)」に変身させる方法を解説しますね。


なぜ「インストーラー化」が必要なの?

あなたのPCでは、Python本体や、Tkinter、PyQtなどのライブラリがすべてインストールされているため、.pyファイルを実行すればアプリが動きます。

しかし、友人のPCにはどうでしょうか?

  • そもそもPythonがインストールされていないかもしれません。
  • Pythonは入っていても、あなたのアプリが必要とするライブラリ(例: pandascustomtkinter)が入っていないかもしれません。

これでは、アプリを使ってもらうために「まず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という「設定ファイル」を自分で書いて、より細かく梱包内容を制御することが多いです。
  • メリット:
    • setup.pyを書くことで、複雑なプロジェクトでも柔軟に対応できます。
  • デメリット:
    • PyInstallerより少しだけ設定(setup.pyの記述)に手間がかかる印象があります。

「インストーラー」と「実行ファイル」の違い

ここで、少し言葉を整理しましょう。

  1. 実行可能ファイル化 (Freezing):
    • これは、PyInstallercx_Freezeが直接行う作業です。
    • Pythonコードやライブラリを、.exe.appという「単体で動くファイル」に固める(Freeze=凍らせる)ことを指します。
    • これだけでも配布は可能ですが、ファイルがdistフォルダなどに無造作に置かれるだけです。
  2. インストーラー化 (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を飛び出して動いた瞬間、きっと大きな達成感を感じられるはずですよ!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。