pyndler
Description
Pyndler is a lightweight tool for bundling a pyz file in an exe file. If an executable is deployed, it can also be useful
to set an executable icon or additional metadata (product name, company name, versions, ...).
Python projects must be bundled using shiv, zipapp or any other pyz-like packaging tool, before they can be bundled as .exe files using Pyndler.
How does it work?
Pyndler uses the fantastic python distlib launcher mentioned in PEP 397.
First, the pylauncher is copied to the target path. Then the pyz file is appended to the launcher. Afterwards, an additional icon or metadata is set using rcedit - a great project usually used for branding electron project.
Usage
Install the latest pyndler release using pip:
pip install pyndler
Run pyndler:
pyndler <SOURCE>
-c, --config VALUE:ExistingFile Path to config file for setting additional metadata
--gui Set to true, if source is a GUI application
-i, --icon VALUE:ExistingFile Path to exe icon
--refresh Refresh Windows icon cache after building
-t, --target VALUE:ExistingFile Path to output file. If not set, the source path is taken
Example call:
pyndler example.pyz --icon icon.ico --config app.cfg
The metadata config file must be written using INI-like syntax with keys listed here, grouped in a VERSIONINFO
section like:
[VERSIONINFO]
<key>=<value>