Installation

pyappdist is a build-time tool. Add it to your application project’s development dependencies and run it from there.

uv add --dev pyappdist

Any PEP 517/621 project works (uv, poetry, hatch, pdm, plain pip). If you do not use uv, install pyappdist into the environment you build from in the usual way, e.g. pip install pyappdist or poetry add --group dev pyappdist.

Build-time toolchain

pyappdist builds the app wheel with python -m pip, so producing the wheelhouse and the runtime image needs nothing beyond pip. Producing the final package needs a per-format toolchain, documented on each format’s page:

  • MSI — MSVC build tools + WiX v5.

  • MSIX — MSVC build tools + makeappx (Windows SDK).

  • Linux / macOS — none (the launchers are shell scripts).

  • macapp / dmg — the Xcode command-line tools.

  • image — the target platform’s launcher toolchain (MSVC for Windows targets; none for Linux/macOS, or with no-launcher).

Each format is built on its own OS.

Package manager (for dependency pinning)

Dependencies are pinned from your project’s lockfile, exported via your package manager (uv / poetry / pipenv / PDM). The relevant tool must be available at build time. See Dependency resolution for details.