Pythonのプログラムをexe化してみる
- 作成日: 2021-01-28
- 更新日: 2023-12-24
- カテゴリ: Python
Pythonのプログラムをexe化する
プログラミング言語のPythonで作成したプログラム(スクリプト)はコマンドラインやエクスプローラーから実行することができます。
これは実行にはPythonのインタプリタを中継しており、プログラム単体で実行することは出来ません。
しかし「pyinstaller」などのプログラムで、Pythonのプログラムをexe化すればexeファイルとして起動することが出来ます。
この記事ではpyinstaller
を使ってPythonのプログラムをexe
化する方法を解説します。
具体的には↓を見ていきます。
- pyinstallerとは?
- pyinstallerのインストール
- pyinstallerでプログラムをexeにする
pyinstallerとは?
「pyinstaller」とはpip
でインストールできるPythonのプログラムをexeにするプログラムです。
単体のPythonプログラムだけでなく、プログラムが依存しているモジュールもすべてまとめて1つのexeファイルにすることができます。
exeファイルにすることでWindows環境では、Pythonインタプリタを環境にインストールしていなくても実行できるようになります。
また、exeファイルを削除すればそのままプログラムを破棄することが出来ます。
よく使うプログラムはpyinstallerでexeにして、そのexeファイルをダウンロードできるようにしておけば、新しい環境でもexeファイルをダウンロードするだけでプログラムを使うことが出来るようになります。
ただexeにすればソースコードはいらなくなるというわけではないので、ソースコードはソースコードで別途に管理が必要になります。
pyinstallerのインストール
pip
などのパッケージマネージャーを使って環境にpyinstaller
をインストールします。
$ pip install pyinstaller
pyinstaller
は下記のモジュールに依存しているため、モジュールがない場合はこれらのモジュールも一緒にインストールされます。
pywin32-ctypes, pefile, altgraph, pyinstaller-hooks-contrib, setuptools
pyinstallerでプログラムをexeにする
簡単なTkinterによるGUIアプリを作ります。
import tkinter as tk
root = tk.Tk()
root.title('Sample')
btn = tk.Button(root, text='Click me!', command=lambda: print('hi'))
btn.pack(expand=True, fill=tk.BOTH)
root.mainloop()
↑のプログラムを実行すると↓のようなGUIアプリが表示されます。
↑のプログラムを「click-me.py
」で保存しておきます。
あとはpyinstaller
で↓のようにclick-me.py
モジュールをexe
化します。
$ pyinstaller --onefile --noconsole click-me.py
exe化が始まるとbuild
ディレクトリとdist
ディレクトリが作成されます。
dist
ディレクトリ以下にexe
ファイルがあるのでこれを実行するとアプリを起動できます。
しかし、最近のWindows環境ではアプリの内容によっては作成したexe
ファイルがウィルスじゃなくてもWindowsにウィルス認定されてしまうことがあります。
これはWindows Defenderによる仕事です。
作成したexe
ファイルをWindows Defenderから除外したい場合は↓などの記事を参照してみてください。