【Python】exe化の方法と各ライブラリは商用利用可能なのか

当サイトで紹介する商品・サービス等の外部リンクは、アフィリエイト広告を含む場合があります。
スポンサーリンク

Pythonは、現在流行の人工知能の他にも、データサイエンスやIoTとハードウェア制御、ゲーム・ウェブ開発まで可能な汎用性の高い言語で、大学や研究機関の他にも個人でライブラリの開発が進められていて、Pythonは日々進歩している言語です。

しかし、HTML・CSS・JavaScriptのようなフロントエンド言語とは異なり、Pythonは各自のPCにインストールしないと使用することができません。
(※公式ページよりダウンロード可能)

Jupyter Notebook (Google Colab)はブラウザ上で、データサイエンス、機械学習を体験することができますが、Tkinterやゲーム開発は実行できません。

以上のようにPythonの環境を自身のPCに取り入れなければPythonを実行することはできません。

しかし、Pythonをexe化することで、PythonをPCにインストールしていなくても処理を行うことが可能です。多くのユーザーに向けて自分で制作したソフトを配布・販売することができます。

また、Pythonに標準搭載されているGUIライブラリ「Tkinter」とexe化は非常に相性が良いです。

Pythonのexe化にはPyInstaller、py2exe、Nuitka、cx_Freezeのライブラリが必要となりますが、それぞれにライセンスがあり、商用利用可能か否か判断しなければいけません。

本記事では、Pythonのファイルをexe化する方法を紹介します。

本記事は次の人におすすめ
  • Tkinterについて知りたい。
  • Pythonをexe化する方法を知りたい。
  • Pythonで作ったソフトを配布・販売したい。
  • シェルを使わずにPythonを動かしたい。
  • pynstallerのインストール方法を知りたい。
スポンサーリンク

Tkinterとは

Tkinterは、Pythonの標準ライブラリで、GUIアプリケーションを作成するためのツールキットです。
Tkinterは、Tcl/TkをラップしてPythonから利用できるようにしたもので、Pythonのクロスプラットフォーム性を維持しながら、シンプルで使いやすいGUIアプリケーションを作成できます。

Tkinterは、ボタン、ラベル、テキストボックス、スクロールバー、メニューなどのウィジェットを提供し、これらを自由に配置してGUIアプリケーションを構築することができます。
また、ウィンドウのサイズや色、フォントなどのカスタマイズも可能です。

tkinterのボタンについてまとめています。
tkinterのラベルについてまとめています。

Tkinterは、Pythonの標準ライブラリに含まれているため、Pythonをインストールすると自動的に使用できます。初心者から上級者まで、幅広いレベルのプログラマーにとって使いやすいGUI開発ツールキットです。

またTkinterは、画面遷移(画面切り替え)を使えば、より本格的なアプリを作成することができます。

tkinterの画面遷移を使って、カウントダウンタイマーを作成しています。

公式サイト:「tkinter — Tcl/Tk の Python インターフェース」

exe化・exeファイルとは

.exeファイルとは、Windowsオペレーティングシステムで実行可能なプログラムファイルです。
「exe」は「executable」の略で、コンピュータで実行される指示や命令を含むファイルです。

一般的に、exe化は、Windows用のプログラムを開発する際に使用されます。開発者は、プログラムをexeファイルに変換することで、ユーザーがソフトウェアを簡単にインストールし、Windows上でアプリケーションを実行できるようにします。

また、exeファイルは、様々なセキュリティ機能を実装することができ、不正なコードの実行を防止することもできます。

※参考ページ:「exeファイルとは」

MacOSでexeファイル実行する方法

exeファイルはWindows用のプログラム拡張子なので、Macでは動作しません。
ただし、Macでも、exeファイルを起動させる方法があります。

  • 「Wine」をインストールしてexeファイルを開く。
  • 「VirtualBox」や「BootCamp」などを利用してWindowsの仮想環境を構築。

参考ページ:「macOSでEXEファイルを実行する方法と消えたEXEファイルを復元する方法」

「Wine」はmacOSやLinuxをUnix系オペレーティングシステム上でWindowsアプリケーションを実行するためのプログラムで、Windowsアプリケーションが依存するAPI(Application Programming Interface)を再現し、Windows以外のプラットフォームでも動作させることができます。

また、「VirtualBox」や「BootCamp」はどちらも仮想のWindows環境を構築します。

しかし、個人的な意見としては、macOSでWindowsの仮想環境を起動させるために、
自分自身で下調べをして動作させるというリスクが伴います。
また、CPUやメモリに負荷がかけて、内蔵ストレージ容量も取ります。

macOSでexeファイルを稼働させることにメリットが見つからないので、
macOSでWindowsの仮想環境を構築するのは控え方が良いです。

exe化のメリット

Pythonのexe化することで以下のようなメリットがあります。

  • PythonをインストールしていないPCでも手軽に実行できる。
  • ユーザーにPythonの知識がなくても実行できる。
  • 実行速度が上がる場合がある(Nuitkaのようにコンパイルするタイプ)。
  • 配布が容易になる。

Python環境が構築をされていないPCで起動

Pythonは「jupyter」や「Google Colaboratory」のようなにブラウザ上でPythonを実行させることができて便利ですが、これらのプラットフォームに依存しているため、「Tkinter」が使えないといった注意点があります。
したがって、大型のPythonスクリプトを実行させることはあまり向いていません。
また、前述したようにPythonを動かすには基本的にPythonをインストールしなければいけません。

さらに、Pythonを日常的に扱う人は、既にPCへPythonの環境を構築しているかと思いますが、普段Pythonを使わない人にスクリプトを渡しても、受け取った人のPCにPythonがインストールされていないことは十分に考えられます。

しかし、exe化することでこのようなこのような懸念は解消させます。

スクリプトをexe化することでPCにPythonをインストールする必要がなくなり、手軽に実行できるようになります。したがって、Python環境を構築していない受け取った人もスクリプトを動かすことができます。

Pythonの知識不要

Pythonは、「Tkinter」をはじめ標準ライブラリだけでも豊富な機能を持っていますが、さらに、Webアプリケーション開発のためのDjangoやFlask、データ分析のためのNumPyやpandas、機械学習のためのTensorFlowやPyTorchなど、さまざまな分野で使える豊富なライブラリが利用できます。

しかし、これほど豊富なライブラリを抱えていると、どのライブラリがどんな場面で使えばよいかと知識が必要になり、これらもPythonと同様にインストールが必須となります。

PythonをVScodeやコマンドプロンプトなどのシェルから動作させるとき、実行するコマンドを入力しなければいけません。exe化によって、プログラムを配布する場合も、Pythonのインストールや環境設定など難しいコマンド入力をユーザーに求めることがないため、利用者の負担が軽減されます。

実行速度の向上

Pythonはインタープリタ言語であるため、実行速度が遅いという欠点があります。しかし、exe化することで、Pythonのスクリプトをバイトコードに変換し、それを実行することができるようになります。そのため、実行速度が向上する場合があります。

exe化するライブラリ

Pythonをexe化するライブラリは前述したようにPyInstaller、py2exe、Nuitka、cx_Freezeなどが存在します。

これらのライブラリは、Pythonスクリプトを実行可能ファイルに変換するための異なる方法を提供しています。選択するライブラリは、必要な機能や環境に合わせて選択する必要があります。

PyInstaller

PyInstallerは、最も王道なexe化するライブラリで、Pythonスクリプトを単一の実行可能ファイルに変換するためのツールです。多くの依存関係を解決し、パッケージを作成するために必要なすべてのファイルを含む実行可能ファイルを作成します。
また、新しいPythonのバージョンにも対応しています。現在の最新版は6.22.3で、Python 3.8から3.15に対応しています(2026年10月7日にPyPIで確認)。

インストールするには、コマンドプロンプトで次のように入力が必要です。

pip install pyinstaller

公式サイト:「PyInstaller Manual」

PyInstallerは商用利用可能?

PyInstallerをインストールしたもの配布や販売(商用利用)に使用してよいのか気になっているかと思います。

以下に、PyInstallerのライセンスの一部を抜粋して引用しています。
詳細は引用先のURLから各自で確認してください。

PyInstallerを使用して商用アプリケーションをバンドルすることができます。
バンドルとは、複数の製品やサービスを一括してパッケージ化して提供することです。
例えば、PCやスマートフォンはOSとアプリのソフトウェアがあります。

PyInstallerソースコードの変更も可能です。
ただし、GPLライセンスの条件の下で行う必要があります。
変更を配布する場合は、GPL条項の下で配布しなければいけません。

You may use PyInstaller to bundle commercial applications out of your
source code.

The executable bundles generated by PyInstaller from your source code
can be shipped with whatever license you want, as long as it complies with the licenses of your dependencies.

You may modify PyInstaller for your own needs but changes to the
PyInstaller source code fall under the terms of the GPL license. That is, if you distribute your modifications you must distribute them under GPL terms.

PyInstaller-License

PyPIでは、PyInstallerのライセンスは「GPLv2-or-later with special exception」と表示されています。この例外のおかげで、PyInstallerで作ったexeには好きなライセンスを付けられます。ただし、exeの中に入れたほかのライブラリのライセンスには従う必要があります。

著者の体験談
著者の体験談

私は、使うライブラリやモジュールごとに公式サイトを訪ねて、商用利用ができるかどうかを直接確認しました。

py2exe

Pythonスクリプトが依存するすべてのライブラリを含む単一の実行可能ファイルを作成します。ただし、Linux、Mac OS Xなどのプラットフォームには非対応で、Windowsにのみ対応しています。また、一部の非搭載ライブラリとの統合に問題がある場合があります。

インストールするには、コマンドプロンプトで次のように入力が必要です。

pip install py2exe

公式サイト:「py2exe」

Nuitka

Pythonスクリプトを高速なC言語のコードに変換するためのツールです。
ゆえに、他のライブラリより実行が高速であることが特徴です。

ただし、すべてのPython機能をサポートしているわけではありません。
また、一度C言語でコンパイルするため、exeファイルを作成するまでに時間がかかります。

インストールするには、コマンドプロンプトで次のように入力が必要です。

pip install nuitka

公式サイト「Nuitka the Python Compiler」

Nuitkaは商用利用可能?

NuitkaのライセンスはAGPLv3以降です。ただし、実行時の例外(LICENSE-RUNTIME.txt)が付いているため、Nuitkaで作ったexeにAGPLは及びません。商用で配布できます。

Nuitka本体の改造を配布するときは、AGPLに従う必要があります。詳しくはPyPIのNuitkaのページを見てください。

データファイルの保護などの機能が付いた有料の商用版(Nuitka Commercial)もあります。商用版を使っても、作ったソフトは自由に配布できると公式に書かれています。詳しくはNuitka Commercialを見てください。

cx_Freeze

cx_Freezeは出力されるファイルが1つではなく、作成された「.dllファイル」がないと正常に動作しません。
しかし、cx_Freezeでexe化したファイルは非常に起動が早いです。

インストールするには、コマンドプロンプトで次のように入力が必要です。

pip install cx_Freeze

公式サイト:「cx_Freeze 6.15.0-dev3 documentation」

各種ライブラリの特徴

2026年10月時点(PyPI)のライセンスと最新版は次のとおりです。PyInstallerは「GPLv2以降+特例」(6.22.3)、NuitkaはAGPLv3以降+実行時の例外(4.2.2)、py2exeはMITまたはMPL 2.0(0.14.2.0、Python 3.10〜3.14)、cx_FreezeはPSF-2.0(8.7.1、Python 3.10〜3.15)です。

例として取り上げた4つのライブラリは以下の通りです。自身に適したライブラリを使用してください。

個人的には、PyInstallerがもっと利便性が高いのでおすすめします。

ライブラリ特徴
PyInstaller単一の実行可能ファイルに変換する。新しいPythonのバージョンに対応。
py2exe単一の実行可能ファイルを作成。Windowsにのみ対応。
NuitkaPythonの実行速度をC言語に変換して解消。C言語でコンパイルするため作成に時間がかかる。
cx_Freezeexe化したファイルの起動が非常に早い。実行には「.dllファイル」が必要。

exe化の手順

本記事では、「PyInstaller」を使用してexeファイルの作り方を紹介します。

著者の体験談
著者の体験談

私は、Tkinterを使ったGUIアプリや、自分のブログ用の画像変換ツールをexe化しました。画像変換ツールは、PNG・JPEG・GIFなどの画像ファイルをWebP形式へ一括で変換するスクリプトで、毎回コマンドを実行する手間を省くためにexe化して使っています。

PyInstallerを選んだ理由は、pipで手軽に導入でき、ネット上の情報量も多かったからです。配布や販売の経験はなく、個人で使っているだけです。

PyInstallerのインストールには、Windowsに標準搭載されているコマンドプロンプトでインストールしていきます。

コマンドプロンプト・ターミナルはプログラミング初心者の方やウェブデザイン(html・CSS・JavaScript)をされる方にはあまり馴染みがないかと思います。

コマンドプロンプト/ターミナルとは

・コマンドプロンプト

Windows のコマンドプロンプトとは、普段マウスを用いて行っている操作を「コマンド」と呼ばれる命令文を入力して実行するものです。コマンドプロンプトでなければ操作できないこともあるため、知識として覚えておくことをおすすめします。

実際にWindows 上でコマンドプロンプトを起動すると、黒いバックグラウンドのサブウィンドウが表示され、コマンド入力の待機状態で上部に表示されます。
コマンドを入力し実行することでプログラムを起動することができ、また、実行したコマンドは一定数記憶されるため、再度実行する場合には簡単な操作で同じコマンドを実行することができます。

Windows 10 のコマンドプロンプトとは?その起動方法と使用例を紹介

・ターミナル

「ターミナル」は、macOSにコマンドラインインターフェイスを提供します。「ターミナル」内の各ウインドウは、シェルプロセスのインスタンスを表します。ウインドウには、コマンドを入力できることを示すプロンプトが含まれます。表示されるプロンプトは「ターミナル」およびシェルの設定によって異なりますが、ほとんどの場合は、ログインしているホストの名前、現在の作業フォルダ、ユーザ名、およびプロンプト記号が含まれます。

Macで「ターミナル」を開く/終了する

特に、コマンドプロンプトやターミナルは、Pythonスクリプトのデバックだけではなく、pillowやNumpy・Matplotlib・pandas・SciPyなどライブラリをインストールする際にも使用します。

Numpy・Matplotlib・pandas・SciPyなど数値解析やデータサイエンスで使用するライブラリをまとめています。
pillowは画像処理に使用します。QRコードの作成も可能です。

コマンドプロンプト起動・PyInstallerをインストール

初めに、コマンドプロンプトを起動します。

コマンドプロンプトを呼び出すには、キーボードのWindowsマークを押す。あるいは、ツールバーのwindowsのマークをクリックしてください。

そして、Windowsマーク内にある検索バーにて「コマンドプロンプト」と入力すると画像のようにコマンドプロンプトがアプリでヒットするので、起動してください。

画面が表示されましたら、前述したように、

pip install pyinstaller

と入力します。

名称は「P」・「I」が大文字ですが、
入力文字は、全て小文字であることに注意してください。

画像のような表示になれば、インストール完了です。

Python exe化

次に、Pythonをexe化していきます。
今回は、スクリプト「Test.py」のexeファイル化を進めていきます。
ファイルの名前は簡単な英単語・数字にすることをおすすめします。

「22_01_11@ tEst.py」みたいに記号や小文字・大文字の混在、空白等を使用すると、
想定通りにexe化できないこともあるので、注意しましょう。

同じくコマンドプロンプトで、ソースコードを置いてあるところまで移動します。

コマンドプロンプトを開くと、「C:\Users\(名前)>」となっています。
これは現在地を示していて、エクスプローラのファイルを開いていると考えてください。

例えば、画像のようにスクリプトをデスクトップ上に置いたのであれば、

cd desktop

と入力すると、現在地(作業フォルダー)がデスクトップになります。
もし、作業フォルダーと保存フォルダーの場所が異なるとエラーが発生しますので注意してください。

著者の体験談
著者の体験談

私は当時、ディレクトリ(パス)の理解が不十分で、コマンドラインでフォルダを移動して実行する作業に慣れていませんでした。そのため、Pythonのファイルをいったんデスクトップに置いてから、PyInstallerでビルドしていました。

次に、

pyinstaller Test.py

と入力すると、Test.pyのexe化が開始されます。前回同様に「pyinstaller」は全て小文字です。

ファイルを1つにするときは、「–onefile」が必要です。

pyinstaller Test.py --onefile

しばらく待つと、最後の行に、「completed successfully」と表示できれば、exe化完了です。

完成したソフトはdistファイルに保存されています。

まとめ

Pythonをexe化するには「PyInstaller」を使うことでことでコマンドプロンプトやターミナルなどのシェルでデバックが不要になります。

さらに、Python環境が構築をされていないPCでも起動可能で販売や配布ができて、とても便利です。

また、本記事でPythonスクリプトをexe化したときに使用したライブラリのPyInstallerは商用利用可能です。また、PyInstallerソースコードの変更も可能です。
ただし、変更を配布する場合は、GPL条項の下で配布しなければいけません。

Nuitkaも、実行時の例外があるため、作ったexeを商用で配布できます。ただし、Nuitka本体を改造して配布するときはAGPLに従う必要があります。

exe化すると、ソースコードがそのままの形では見えなくなります。ただし、exeの中にはコンパイル済みのPythonのコード(pycファイル)が入っていて、取り出すことができるため、完全に隠せるわけではありません。パスワードなどの秘密の情報は、コードに直接書かないでください。

他の人に配布・販売するときは、使っている外部モジュールが商用利用できるかなど、ライセンスの条件を事前に必ず確認してください。

タイトルとURLをコピーしました