python-build¶
A simple, correct PEP 517 package builder¶
python-build will invoke the PEP 517 hooks to build a distribution package. It is a simple build tool, it does no dependency management.
The recommended way to invoke is by calling the module:
python -m build¶
usage: python -m build [-h] [--sdist] [--wheel] [--outdir dist]
[--skip-dependencies] [--no-isolation]
[--config-setting CONFIG_SETTING]
[.]
-
.
source directory (defaults to current directory)
-
-h
,
--help
¶
show this help message and exit
-
--sdist
,
-s
¶
build a source package
-
--wheel
,
-w
¶
build a wheel
-
--outdir
<dist>
,
-o
<dist>
¶ output directory
-
--skip-dependencies
,
-x
¶
does not check for the dependencies
-
--no-isolation
,
-n
¶
do not isolate the build in a virtual environment
-
--config-setting
<config_setting>
,
-C
<config_setting>
¶ pass option to the backend
But the python-build
script is also available, so that tools such as pipx
can use it:
usage: python-build [-h] ...
By default python-build will build the package in a isolated environment, but
this behavior can be disabled with --no-isolation
.
Mission Statement¶
The in the Python ecosystem, the build system tools and the package management are very intertwined. While it might be useful for user to be able to access all this capabilities in a single project (such as pip), there are several use- cases where this is not desirable. The main being custom environments (outside PyPI) or situations where the user does its own package management, such as Linux distributions.
This project aims to fit the “building packages hole” for such use-cases in PEP 517/PEP 518 workflows.
As it is intended to be used by users that do their own package management, we will try to keep dependencies to a minimum, in order to try make bootstrapping easier.
Releases¶
You can download a tarball from Github, checkout the latest git tag or fetch the artifacts from project page on PyPI.
The recommended way is to checkout the git tags, as they are PGP signed with one of the following keys:
3DCE51D60930EBA47858BA4146F633CBB0EB4BF2
(Filipe Laíns)
Difference from other tools¶
setup.py sdist bdist_wheel
¶
python-build
is roughly the equivalent of setup.py sdist bdist_wheel
but
with PEP 517 support.
python -m pep517.build
¶
python-build
implements a CLI tailored to end users. python -m
pep517.build
“implements essentially the simplest possible frontend tool,
to exercise and illustrate how the core functionality can be used”.
Custom Behaviors¶
Bootstrapping¶
This package can build itself with only the toml
and pep517
dependencies. The --skip-dependencies
flag should be used in this case.
Compability¶
python-build
is verified to be compatible with the following Python
versions:
2.7
3.5
3.6
3.7
3.8