pywinfreeze compiles Windows-compatible binaries on Linux.
./pywinfreeze /path/to/your/python/application.py
pywinfreeze is based on @GeneralCarto's instructions for freezing python applications inside a virtual-wine environment.
The script downloads and installs a temporary vwine environment containing python 2.7, pip and pyinstaller; then grabs your python application's package dependencies with pipreqs and freezes to a single .exe
file. It creates two temporary directories while it's building your binary: virtual-wine
and venv_wine
.
The compiled binary is created in the directory where pywinfreeze was invoked.
Note: if your python script requires packages not available on PyPi, you'll need to ensure the source files are in your project directory.