PythonアプリをEXEファイル化する方法|Pyinstallerの使い方を解説

Pythonが入ってない環境で、自分が作成したプログラムを実行したいなぁって思うことないですか?
私はよくあります
そこで、PythonのプログラムをWindowsの実行ファイル(exe)に変換する方法がありますので、そちらを今日はシェアしようと思います。

ライブラリのインストール

まずは、pythonのアプリをExeに変換するためのライブラリをインストールします。
Pythonではおなじみのpipコマンドで、「pyinstaller」というライブラリを指定してインストールします。
この「pyinstaller」を実行することで、windowsで実行可能なexeファイルに簡単に変換することができます。
では具体的な方法を以下に記載します。

ではおなじみコマンドプロンプトを起動して以下の通り実行します。

pip install pyinstaller

実行すれば以下のようになります。

これで、準備は完了です。

pyinstallerを実行

では続いて、「pyinstaller」を使い、exeに変換してみます。
前回作成したプログラムをexe化してみましょう。
前回の プログラム の内容はこちらです。

import numpy as num

def test( ):
 ret = num.array([1,2,3])
 return ret

if __name__ == '__main__':
 result = test()
 print(result)

では実行しましょう。
先ほど起動したコマンドプロンプトに以下の通り入力し実行してみてください。

ここでワンポイント!!
オプションで、 –onefile を入れていますが、このオプションをいれないとexe単体では実行できないので必ず入れるようにしてください。
※pythonとライブラリがインストールされていないと実行できないので注意してください。せっかくExe化してもあまり意味がないです。

pyinstaller test.py --onefile

実行すれば、以下のような感じに文字がいっぱい出力されます。
ファイルを作ったり色々してくれていてそういった情報が出力されますので、しばらく待ってください。

しばらく待って、以下のようになればexe化 成功です。

で、どういう感じで作成されるかは、エクスプローラを確認します。
以下が、今回生成をしたファイルがあるフォルダです。

この中の「dist」というフォルダを開くと、test.exeというファイルが生成されています。

余談ですが、いつも不思議なんですが、あの数行のプログラムから生成してなぜ18Mbyteもあるファイルができるんだろうか???(多分Python自体を含めて生成するからですかね。。)

ちなみに、今回は、1ファイルだけのプログラムですが、プログラムファイルを複数に分けているような場合でも、同様にメインとなるプログラムファイルを指定すれば問題なく、まとめてexe化してくれます。

実行方法

では、このファイルを実行してみましょう。
またコマンドプロンプトの出番です。
生成したexeファイルのある場所まで行き、以下の通り入力し実行してください。

test.exe

今回は、GUIのないPythonプログラムをexe化したので、結果がわかるようにコマンドプロンプトで実行しますが、exeファイルを普通にダブルクリックすれば実行できます。
プログラム側を引数をとれるようにしておけば、入力ファイルをexeに持っていけば引数として実行してくれます。

実行結果

実行結果は、以下です。

はい。簡単にexeへの変換ができました。
これで、pythonがインストールされていない環境に、このファイルを持っていけば実行できます。

エラーが発生した場合

私がこのpyinstallerを使用していて、出会ったエラーや不具合?とその対処方を記載しておきます。
何か問題等発生した場合は参考にしてみてください。

エラーが発生して、ファイルが生成されない。

私が新たにプログラムを作成するときに、たまに起こるエラーは、プログラムのファイル指定を誤っている場合です。
pythonは、コマンドプロンプトで実行することがほとんどだと思いますが、指定ファイルの場所を間違って指定している場合がほとんどです。
ですので、エラーが発生した場合は、まず指定のファイルのパスが正しいのか確認してください。

ちなみに、私はできるだけファイルパスを間違わないようにファイルをドラッグ&ドロップするようにしています。

ファイルが生成されない

たまにpyinstallerを実行して、successfullyと出ているのに実行ファイルができてないやん!!ってことがあります。
これも、コマンドプロンプトを使用している弊害で、コマンドプロンプトを起動したときのデフォルトパスは、以下のようにユーザーのディレクトリになってしまっています。
※XXXXにはユーザー名が入ると思います。

C:\Users\XXXX

このままパスの変更をしない状態で、pyinstallerを実行するとここで指定した場所で、pyinstallerが実行されてしまうので、このパスにファイルが生成されてしまいます。

ですので、実行する際は、自分がファイルを生成したい場所にcd“コマンドでパス移動してから実行してください。

pyinstallerを再実行したのに、ファイルが新しく生成されない

一度生成した状態で変更をかけたときに、successfullyと表示されているのに、実行するとプログラムが変わっていない状態になることがたまにあります。
これは、中間生成ファイルのキャッシュがおかしくなっていて、再生成が正しくされていない場合がほとんどだと思います。
※私の経験では、パスを変えた場合等によく起こる気がします。

この場合は以下のように、中間ファイルをすべて一度削除してください。

まとめ

単純なプログラムでもファイル自体は大きくなりちょっと容量は増えてしまいますが、パソコンの容量を考えるとたいしたことないサイズですので、Windowsユーザーはおすすめかと思います。
非常に簡単にexe化することができるので、ぜひみなさんもやってみてください。

作成したExeファイルの容量を削減したい場合はこちら

Pythonについて勉強したい人は以下がおすすめです。私も持っていてたまに眺めて勉強していますものですのでぜひ購入して学習してみてください。

にいやん

出身 : 関西 居住区 : 関西 職業 : 組み込み機器エンジニア (エンジニア歴13年) 年齢 : 38歳(2022年11月現在) 最近 業務の効率化で噂もありPython言語に興味を持ち勉強しています。 そこで学んだことを記事にして皆さんとシェアさせていただければと思いブログをはじめました!! 興味ある記事があれば皆さん見ていってください!! にほんブログ村