Command-Line Interface¶
A simple, correct Python build frontend.
By default, a source distribution (sdist) is built from the project root and
a binary distribution (wheel) is
built from the sdist. If this is undesirable, you can pass --sdist and/or --wheel to build distributions
independently of each other.
python -m build¶
A simple, correct Python build frontend.
By default, a source distribution (sdist) is built from the project root
and a binary distribution (wheel) is built from the sdist.
If this is undesirable, you can pass `--sdist` and/or `--wheel`
to build distributions independently of each other.
python -m build [-h] [--version] [--quiet | --verbose] [--outdir PATH] [--sdist] [--wheel]
[--metadata] [--config-setting KEY[=VALUE] | --config-json JSON_STRING]
[--installer {pip,uv} | --no-isolation]
[--dependency-constraints-txt PATH] [--skip-dependency-check]
[srcdir]
python -m build positional arguments¶
srcdir- source directory (defaults to the current working directory)
python -m build global options¶
python -m build build options¶
--outdirPATH,-oPATH- output directory (defaults to{srcdir}/dist). Cannot be used together with--metadata--sdist,-s- build a source distribution (disables the default behavior)--metadata- print out a wheel’s metadata in JSON format. Cannot be used in conjunction with--sdistor--wheel--config-settingKEY[=VALUE],-CKEY[=VALUE]- settings to pass to the backend. Multiple settings can be provided. Settings beginning with a hyphen will erroneously be interpreted as options to build if separated by a space; use--config-setting=--my-setting -C--my-other-settinginstead--config-jsonJSON_STRING- settings to pass to the backend as a JSON object. This is an alternative to--config-settingthat allows complex nested structures. Cannot be used together with--config-setting
python -m build installation options¶
--installerINSTALLER- Python package installer to use (defaults to pip)--no-isolation,-n- disable building the project in an isolated virtual environment. Build dependencies must be installed separately when this option is used--dependency-constraints-txtPATH- constrain build dependencies using a constraints.txt when installing dependencies--skip-dependency-check,-x- do not check that build dependencies are installed
Isolation Behavior¶
By default build will build the package in an isolated environment, but this behavior can be disabled with
--no-isolation. When using isolation, build creates a temporary virtual environment, installs the build dependencies
specified in your pyproject.toml, runs the build, and then cleans up the environment. This ensures reproducible
builds regardless of what packages are installed in your development environment.
Alternative CLI Script¶
A pyproject-build CLI script is also available, which is functionally identical to python -m build. This is
useful for tools like pipx that prefer direct script entry points.
$ pyproject-build
$ pyproject-build --help
Both commands accept the same options and behave identically.
Common Patterns¶
For practical usage examples and workflows, see Basic Usage.
See Also¶
Basic Usage for common workflows
Backend Configuration for passing options to backends
Environment Variables for environment variables that affect build