Tkinterアプリを配布用にパッケージ化する方法|PyInstallerでexeファイルを作成する手順
Tkinterは、Pythonライブラリをベースとしたクロスプラットフォーム対応のGUIツールキットで、GUIアプリケーションの構築・開発に広く利用されています。Tkinterで作成したアプリケーションは、実行可能ファイル(exeファイルなど)にバンドルすることで、PythonインタープリタやIDLEがなくても単体で動作させられるようになります。
ソースコードを公開せずに、完成したアプリケーションだけを他の人と共有したい場合、このパッケージ化(バンドル)は非常に重要なステップとなります。
Pythonには、動作中のアプリケーションを実行可能なポータブルファイルへ変換できるモジュールや拡張機能が多数用意されています。ただし、生成されるファイルはプラットフォームごとに異なるため、Windows・macOS・Linuxなど、すべてのOSで利用できるようにするには、それぞれの環境に対応したパッケージを使用する必要があります。
PyInstallerとは
本記事では、PythonのPyInstallerパッケージを使用して、Tkinterアプリケーションを実行可能ファイルにバンドルする方法を解説します。PyInstallerは、Pythonスクリプトを依存ライブラリごとまとめて1つの実行ファイルに変換できる、最も人気のあるツールの一つです。
PyInstallerをインストールするには、以下のコマンドを実行します。
pip install pyinstaller
Tkinterアプリを実行可能ファイルに変換する手順
インストールが完了したら、以下の手順でPythonスクリプトファイル(Tkinterアプリケーション)を実行可能ファイルへ変換できます。
- Windowsの場合、pip install pyinstallerコマンドでPyInstallerをインストールします。
- 次に、コマンドプロンプトまたはターミナルで以下のコマンドを入力し、Enterキーを押します。
pyinstaller --onefile -w filename
- 各オプションの意味は以下の通りです。
--onefile:すべての依存ファイルを1つの実行ファイルにまとめます。
-w:実行時にコンソール画面(黒いウィンドウ)を表示しないようにします。 - スクリプトファイルがあった場所を確認すると、distフォルダが生成されており、その中に実行可能ファイルが格納されています。
- 生成されたファイルを実行すると、Tkinterアプリケーションのウィンドウが表示されます。
サンプルコード
ここでは、ユーザーに名前の入力を求め、入力された名前を使って挨拶メッセージを表示する簡単なアプリケーションを作成します。
# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk
# tkinterフレームのインスタンスを作成
win = Tk()
# ウィンドウのサイズを設定
win.geometry("750x250")
# メッセージを表示する関数を定義
def myclick():
message = "Hello " + entry.get()
label = Label(frame, text=message, font=('Times New Roman', 14, 'italic'))
entry.delete(0, 'end')
label.pack(pady=30)
# フレームを作成
frame = LabelFrame(win, width=400, height=180, bd=5)
frame.pack()
# 子ウィジェットに合わせてフレームが縮小されないよう設定
frame.pack_propagate(False)
# フレーム内にEntryウィジェットを作成
entry = ttk.Entry(frame, width=40)
entry.insert(INSERT, "Enter Your Name")
entry.pack()
# ボタンを作成
ttk.Button(win, text="Click", command=myclick).pack(pady=20)
win.mainloop()実行ファイルへの変換と動作確認
上記のコードを実行可能ファイルに変換するには、以下のコマンドを実行します。
pyinstaller --onefile -w filename
コマンド実行後、カレントディレクトリ内にdistフォルダが自動的に作成され、すべての実行可能ファイルはそこに出力されます。
生成されたexeファイルを実行すると、Entryウィジェット(テキスト入力欄)を含むウィンドウが表示されます。名前を入力して「Click」ボタンを押すと、画面に入力した名前を使った挨拶メッセージが表示されます。

まとめ
PyInstallerを使えば、たった1つのコマンドでTkinterアプリケーションを配布可能な実行ファイルに変換できます。Pythonがインストールされていない環境でもアプリを動かせるため、同僚や友人への共有、社内ツールの配布など、さまざまな場面で活用できます。まずは簡単なサンプルで試してみてください。
-
Outlookカレンダーを他の人と共有する3つの方法【メール・Exchange・印刷】
仕事の内容によっては、自分の多忙なスケジュールをほかの人に共有しなければならない場面が出てくることがあります。経営層のアシスタントや秘書を務めているなら、常時カレンダーへのアクセスを許可しておく必要があるでしょう。また、出張や旅行でしばらく職場を離れる間、代理の担当者に業務を任せるときにも、カレンダーの共有は非常に役立ちます。 目的が何であれ、Outlookにはスケジュールを共有するための方法が複数用意されています。カレンダーのスナップショットをさまざまな形式で送ることもできますし、さらに便利なのは共有の招待状を送る方法です。 Outlookカレンダー共有の大きな魅力は、既定の予定表フォルダー
-
Firefox Sendでファイルを安全に共有する方法|使い方と特徴を解説
現在、ウェブ上でファイルを共有することは、手軽かつ迅速な手段としてごく一般的になっています。有料サブスクリプションでクラウドバックアップやファイル転送サービスを提供する事業者は数多く存在しますが、データセキュリティへの懸念は今なお大きな課題です。適切なセキュリティ対策が施されていない場合、オンラインで転送中のファイルはハッカーに不正アクセスされる恐れがあります。こうしたセキュリティ上の弱点を補うべく、Mozilla Firefoxは「Send」と呼ばれる安全なファイル転送プラットフォームを提供しました。Firefox Sendとはどんなサービスなのか、この機能を使ってどうやってファイルを共有す