見出し画像

PythonアプリのWindows exe化

Pythonで作成されたアプリを実行するためには、通常、実行環境にもPythonやライブラリのインストールが必要になります。

しかし、セキュリティなどの理由や、他のアプリケーションの動作環境を維持するために、Pythonがインストールできなかったり、バージョンを変更できなかったり、ライブラリを追加できない場合が多々あります。

そこで、Pythonのアプリとそのアプリが使う実行環境を全部ひとまとめにして単体のexeにするPythonツールがあります。

検索すると、pyinstallerpy2exeが出てきます。しかし、py2exeはPySideなどで使用しているDLLが漏れてしまうことが多いらしく、実際、私もPyMuPDFで使っているDLLが含まれず、作成されたexeが実行できませんでした。
ちなみに、py2exeのバージョンを調べると0.13.0.1となっており、未だβ版という扱いなのかも知れません。(pyinstaller6.2.0でした)

pyinstallerでexe化できました。

pip install pyinstaller
でインストール
exe化したいアプリ(Pythonの実行ソース)のあるフォルダで、
pyinstaller xxxx.py
(xxxx.pyが実行ソース)
と実行
すると、同じディレクトリ階層にdistbuildというフォルダが作成され、
dist\xxxx
の中にxxxx.exeが生成されます。
xxxx.pyが必要としていたライブラリ、DLLなどは、同じ階層にある
_internal
に納められます。

buildは生成時に使用したファイルらしく、distの下のexe実行には必要ありませんでした。従って、distフォルダだけを配布すれば、Python環境がないWindowsでこのアプリを実行することができます。

xxxx.pyjsonファイル画像ファイルを読み込んで利用していたり、ログファイルなどに出力している場合は、それらのファイルをdist\xxxx\xxxx.exeからxxxx.pyが参照していたのと同じパスにコピーして、distフォルダと一緒に配布する必要があります。
pyinstallerでは、プログラムが参照しているファイルはコピーされないようです。


この記事が気に入ったらサポートをしてみませんか?