Skip to content

Application builder


This uses PyApp to build an application that is able to bootstrap itself at runtime.

Note

This requires an installation of Rust.

Configuration

The builder plugin name is app.

[tool.hatch.build.targets.app]
[build.targets.app]

Options

Option Default Description
scripts all defined An array of defined script names to limit what gets built
python-version latest compatible Python minor version The Python version ID to use
pyapp-version The version of PyApp to use

Build behavior

If any scripts are defined then each one will be built (limited by the scripts option). Otherwise, a single executable will be built based on the project name assuming there is an equivalently named module with a __main__.py file.

Every executable will be built inside an app directory in the output directory.

If the CARGO environment variable is set then that path will be used as the executable for performing builds.

If the CARGO_BUILD_TARGET environment variable is set then its value will be appended to the file name stems.

If the PYAPP_REPO environment variable is set then a local build will be performed inside that directory rather than installing from crates.io. Note that this is required if the CARGO environment variable refers to cross.