おじさんのITテクニック

プログラム挫折常連者がプログラムを完成させるまで

Pythonプログラムのexeファイル化

Pythonコンパイルできる

Pythonインタープリタ方式のプログラムのため、そのままだと実行するPCにもPythonをインストールする必要があります。でも、PythonプログラムはPyinstallerというツールでexeファイル化できますので、Pythonをインストールしていない同僚にも自分の自動化プログラムを渡すことができます。

 

Pyinstallerを開発環境にインストールします。

root@acfc9c090855:/tmp# pip install pyinstaller
Collecting pyinstaller
Downloading pyinstaller-5.9.0-py3-none-manylinux2014_x86_64.whl (650 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 650.4/650.4 kB 11.6 MB/s eta 0:00:00
Requirement already satisfied: setuptools>=42.0.0 in /usr/local/lib/python3.11/site-packages (from pyinstaller) (67.6.1)
Collecting altgraph
Downloading altgraph-0.17.3-py2.py3-none-any.whl (21 kB)
Collecting pyinstaller-hooks-contrib>=2021.4
Downloading pyinstaller_hooks_contrib-2023.1-py2.py3-none-any.whl (256 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 256.8/256.8 kB 40.6 MB/s eta 0:00:00
Installing collected packages: altgraph, pyinstaller-hooks-contrib, pyinstaller
Successfully installed altgraph-0.17.3 pyinstaller-5.9.0 pyinstaller-hooks-contrib-2023.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

 

コマンドでコンパイルします。

pyinstaller プログラムファイル名 --onefileコマンドでPythonプログラムをコンパイルします。

root@acfc9c090855:/tmp# pyinstaller hello.py --onefile
159 INFO: PyInstaller: 5.9.0
160 INFO: Python: 3.11.2
:略
15059 INFO: Building EXE from EXE-00.toc completed successfully.

今いるフォルダ(カレントフォルダ)のdistフォルダにexeファイルが生成されます。

root@acfc9c090855:/tmp# ls dist
hello.exe

 

生成されたファイルが実行できるPCはコンパイルしたPCのOSと同じものでなくてはいけません。はWindowsで生成したならWindowsMACで生成したならMACでしか実行できませんが、Pythonをインストールするよりはずっと制約が少ないと思います。

Pyinstallerでコンパイルするとファイルが大きくなるみたいですが、大きくても良いんです。昨今では大概の企業がファイサーバやクラウドでファイルの受け渡し可能だと思います。

 

考え方を少し変えると、プログラムに挫折というものはなくなります。