build
A simple, correct Python build frontend.
See the documentation for more information.
Installation
build can be installed via pip or an equivalent via:
$ pip install build
Usage
$ python -m build
This will build the package in an isolated environment, generating a source-distribution and wheel in the directory
dist/. See the documentation for full information. Build is also available via the command
line as pyproject-build once installed.
Common arguments
--sdist(-s): Produce just an SDist--wheel(-w): Produce just a wheel--metadata: Produce just the metadata as JSON. Cannot be used with--sdist/--wheel.-C: A Config-setting, the PEP 517 way of passing options to a backend. Can be passed multiple times.
--config-json=: An alternative way to pass in complex config settings as JSON strings. Can't be used with
-C.
--installer: Pick an installer for the isolated build (piporuv).--no-isolation(-n): Disable build isolation.--skip-dependency-check(-x): Disable dependency checking when not isolated; this should be done if some
--outdir(-o): The output directory (defaults todist)
--sdist --wheel(-sw): Produce an SDist and a wheel, both from the source directory. The default (if no flag is
-nx: Disable build isolation and dependency checking. Identical to pip and uv's--no-build-isolationflag.--metadata | jq -r .version: get the version in a bash-like environment.
Integration with other tools
pipx
If you use [pipx], such as in GitHub Actions, the following command will download and run build in one step:
$ pipx run build
uv
If you want to use [uv] to speed up the virtual environment creation, you can use --installer=uv. You can get a Python
wheel for uv with the [uv] extra. For example, using pipx like above:
$ pipx run 'build[uv]' --installer uv
If you already have uv, you don't need the extra. For example:
$ uvx --from build pyproject-build --installer uv
cibuildwheel
If you are using [cibuildwheel], build is integrated and the default builder in 3.0+. If you want to use uv as the
installer, you can use:
[tool.cibuildwheel]
build-frontend = "build[uv]"
(Be sure to pre-install uv before running cibuildwheel for this one!)
Conda-forge
On conda-forge, this package is called [python-build].
Code of Conduct
Everyone interacting with build's codebase, issue trackers, chat rooms, and mailing lists is expected to follow the [PSF Code of Conduct].
[cibuildwheel]: https://cibuildwheel.pypa.io [pipx]: https://pipx.pypa.io [psf code of conduct]: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md [python-build]: https://github.com/conda-forge/python-build-feedstock [uv]: https://docs.astral.sh/uv/