Python

Pythonプログラムのexe化

Pythonで作ったプログラム(*.pyファイル)は、Pythonの実行環境と、使用したモジュールがインストールされた環境でないと実行できないため、他のPCでプログラムを実行するのが面倒だったりもします。

PyInstallerというのを使うと、Pythonプログラムをexeにして実行することが可能になります。

私自身は、普段からVisual Studio2019を使って開発しているので、Visual StudioからPyInstallerを使う方法を紹介します。(おそらくVisual Studio2017以降であれば同様の操作で出来ると思います。)

Python環境の作成

Visual StudioのソリューションエクスプローラーPython環境を右クリックし、環境を追加をクリックします。

Python exe化 PyInstallerの使い方

表示された画面の仮想環境を選択し、名前の部分に適当な名前を付け(今回はexeにしました)、ベースインタープリターの部分で、もともと使っていたPythonの環境(バージョン)を選択し、右下の作成をクリックします。

Python exe化 PyInstallerの使い方

すると、今回作成した環境(exe)が追加されます。

ただし、パッケージ(PyPI)の部分を見ると、必要なモジュールが何もインストールされていない状態になります。

Python exe化 PyInstallerの使い方

今回の例では、exe化しようとしているPythonファイル(*.py)は、pillowとnumpyを使用するため、別途、作成したPython環境(exe)に必要なモジュールをインストールする必要があります。

Python exe化 PyInstallerの使い方

モジュールのインストールはPyPIとインストールされたパッケージの検索の部分に必要なモジュール名を入力すると、次のコマンドを実行する:pip install Pillow が表示されるので、この部分をクリックして、モジュールをインストールします。

Python exe化 PyInstallerの使い方

各自、必要なモジュールは異なりますので、この状態で、Pythonのプログラムが実行できるか?確認しておいてください。

Python exe化 PyInstallerの使い方

PyInstallerのインストール

exe化するためのPyInstallerも他のモジュールと同様にインストールします。

PyPIとインストールされたパッケージの検索の部分にpyinstallerと入力し、次のコマンドを実行する:pip install pyinstaller が表示されるので、この部分をクリックして、PyInstallerをインストールします。

Python exe化 PyInstallerの使い方

私の場合、最終的に、このよう↓になります。

Python exe化 PyInstallerの使い方

exe化の実行

PyInstallerを使ってexe化するには、コマンドプロンプトでコマンドを入力する必要があるので、コマンドプロンプトを表示します。

プロジェクトの名前の部分を右クリックし、表示されたメニューのここでコマンドプロントを開くをクリックします。

Python exe化 PyInstallerの使い方

すると、プロジェクトのフォルダがコマンドプロンプト上に表示されます。

Python exe化 PyInstallerの使い方

ここに、以下のコマンドを入力します。

pyinstaller [pyファイル名]

私の場合は以下のようにしました。

Python exe化 PyInstallerの使い方

このコマンドを実行すると dist というフォルダが作成されます。

Python exe化 PyInstallerの使い方

distフォルダの中にさらにプロジェクト名のフォルダが作成され、さらに、この中に目的とするexeファイルが作成されています。

他のPCでexeファイルを実行するには、exeファイルと同一階層にあるファイルすべてが必要になります。

Python exe化 PyInstallerの使い方

ファイルがいくつも出来てしまうのは、少々扱いが面倒なので、必要なファイルも含めてexeファイル一つにすることもonefileオプションを設定することで可能です。

pyinstaller [pyファイル名] --onefile

また、プログラム起動時に表示されるコマンドプロンプトのウィンドウ↓

Python exe化 PyInstallerの使い方

を表示させたくない場合は、windowedオプションを指定します。

pyinstaller [pyファイル名] --onefile --windowed 

私の場合の例↓

Python exe化 PyInstallerの使い方

onefileオプションを使うと distフォルダ内にexeファイルが一つだけ作成されるので、このexeファイルを別のPCに持っていくだけで、Pythonや各種モジュールをインストールすることなく、実行することができます。

ただし、使用するモジュールからさらにdllを参照している場合などは、dllのインストールが必要になるかも?しれません。

参考

Using PyInstaller — PyInstaller 4.9 documentation

コメント

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