Compile Python app to single executable

Assume you are already using a Pip venv.

Install pyinstaller and/or add it to your requirements.txt:

souce venv/bin/activate
pip install pyinstaller
pip install -r requirements.txt

Then from root of project:

pyinstall -F src/app.py

The -F flag compiles the application to a single file containing all necessary external packages and local imports.

It outpute to /dist. Say the app is called hello, run the executable thus:

/my-python-application/dist/my-app

To run this as the package name (e.g. my-app --option):

sudo mv /my-python-application/dist/app /usr/local/bin

When overwriting/ publishing a new version:

sudo rm -rf /usr/local/bin/my-app

and repeat above.