build is a PEP 517-compatible Python package builder. It provides a CLI for building packages and a Python API.

Docs | GitHub | PyPI

built distribution

A structure of files and metadata that only needs to be moved to the correct location on the target system during installation. wheel is such a format, but not distutils Source Distribution that require a build step.


cibuildwheel is a Python package that creates wheels for all common platforms and Python versions on most CI systems.

Docs | GitHub | PyPI

See also



Package management tool for the Anaconda distribution from Continuum Analytics. It’s specifically aimed at the scientific community, particularly Windows, where installing binary extensions is often difficult.

Conda does not install packages from PyPI and can only install from the official Continuum repositories or from or local ( e.g. intranet) package servers. Note, however, that Pip can be installed in conda and can work side by side to manage distributions of PyPI.


devpi is a powerful PyPI compatible server and PyPI proxy cache with a command line tool to enable packaging, testing and publishing activities.

Docs | GitHub | PyPI

distribution package

A versioned archive file that contains Python packages, modules, and other resource files used to distribute a release.


Python standard library package that provides support for bootstrapping pip into an existing Python installation or virtual environment.

Docs | GitHub


A built distribution format introduced by setuptools that is now being replaced by wheel. For more information, see The Internal Structure of Python Eggs and Python Eggs.


enscons is a Python packaging tool based on SCons. It builds pip-compatible source distributions and wheels without using distutils or setuptools, including distributions with C extensions. enscons has a different architecture and philosophy than distutils, as it adds Python packaging to a general build system. enscons can help you build sdists and wheels.

GitHub | PyPI


Flit provides an easy way to build pure Python packages and modules and upload them to the Python Package Index. Flit can generate a configuration file to quickly set up a project, create a source distribution and wheel, and upload them to PyPI.

Flit uses pyproject.toml to configure a project. Flit does not rely on tools like setuptools to create distributions, or on twine to upload them to PyPI.

Docs | GitHub | PyPI


Hatch is a command line tool that can be used to configure and version packages and specify dependencies. The plugin system allows you to easily extend the functionality.

Docs | GitHub | PyPI


Build backend of hatch, which can also be used to publish on the Python Package Index.

import package

A Python module that can contain other modules or recursively other packages.


Formerly pyo3-pack, is a PEP 621-compatible build tool for binary extensions in Rust.


Build backend that uses the Meson build system. It supports a variety of languages, including C, and is able to meet the requirements of most complex build configurations.

Docs | GitHub | PyPI


The basic unit of code reusability in Python, which exists in one of two types:

pure module

A module written in Python contained in a single .py file (and possibly associated .pyc- and/or .pyo files).

extension module

Usually a single dynamically loadable precompiled file, for example a common object file (.so).


multibuild is a set of CI scripts for building and testing Python wheels for Linux, macOS and Windows.

See also



Python package manager with PEP 582 support. It installs and manages packages without the need to create a virtual environment. It also uses pyproject.toml to store project metadata as defined in PEP 621.

Docs | GitHub | PyPI


Bibliothek und Werkzeug zur Erzeugung von Python EXecutable (.pex)-Dateien, die eigenständige Python-Umgebungen sind. .pex-Dateien sind Zip-Dateien mit #!/usr/bin/env python und einer speziellen, die das Deployment von Python-Applikationen stark vereinfachen können.

Docs | GitHub | PyPI


Popular tool for installing Python packages included in new versions of Python.

It provides the essential core functions for searching, downloading and installing packages from the Python Package Index and other Python package directories, and can be integrated into a variety of development workflows via a command line interface (CLI).

Docs | GitHub | PyPI


Set of tools that can keep your builds deterministic and still up to date with new versions of your dependencies.

Docs | GitHub | PyPI


Pipenv bundles Pipfile, pip and virtualenv into a single toolchain. It can automatically import the requirements.txt and also check the environment for CVEs using safety. Finally, it also facilitates the uninstallation of packages and their dependencies.

Docs | GitHub | PyPI


Pipfile and Pipfile.lock are a higher-level, application-oriented alternative to pip’s requirements.txt file. The PEP 508 Environment Markers are also supported.

Docs | GitHub


pipx helps you avoid dependency conflicts with other packages installed on the system.

Docs | GitHub | PyPI


Website and underlying software that fetches source distribution packages from PyPI and compiles them into binary wheels optimised for installation on Raspberry Pis.

Home | Docs | GitHub


An all-in-one solution for Python-only projects. It replaces setuptools, venv/pipenv, pip, wheel and twine. However, it makes some bad default assumptions for libraries and the pyproject.toml configuration is not standard compliant.

Docs | GitHub | PyPI


This is setuptools, but with a C++ extension and wheels generated by cibuildwheel.

Docs | GitHub | PyPI is the domain name for the Python Package Index (PyPI). In 2017 it replaced the old index domain name He is supported by warehouse.


Tool-independent file for the specification of projects defined in PEP 518.


See also

Python Package Index
PyPI is the standard package index for the Python community. All Python developers can use and distribute their distributions.

Python Packaging Authority

The Python Packaging Authority is a working group that manages several software projects for packaging, distributing and installing Python libraries. However, the goals stated in PyPA Goals were created during discussions around PEP 516, PEP 517 and PEP 518, which allowed competing workflows with the pyproject.toml-based build system that do not need to be interoperable.


readme_renderer is a library used to render documentation from markup languages like Markdown or reStructuredText into HTML. You can use it to check if your package descriptions are displayed correctly on PyPI.

GitHub | PyPI


The snapshot of a project at a specific point in time, identified by a version identifier.

One release can result in several Built Distributions.


Build system generator for C-, C++-, Fortran- and Cython extensions that integrates setuptools, wheel and pip. It uses CMake internally to provide better support for additional compilers, build systems, cross-compilation and finding dependencies and their associated build requirements. To speed up and parallelise the creation of large parallelisation, Ninja can also be installed. can be installed.

Docs | GitHub | PyPI


setuptools are the classic build system, which is very powerful, but with a steep learning curve and high configuration effort. From version 61.0.0 setuptools also support pyproject.toml files.

Docs | GitHub | PyPI


Command line utility for building Python zip apps as described in PEP 441, but additionally with all dependencies.

Docs | GitHub | PyPI

source distribution

A distribution format (typically generated using) python sdist.

It provides metadata and the essential source files required for installation with a tool like Pip or for generating built distributions.


Flexible package manager that supports multiple versions, configurations, platforms and compilers. Any number of versions of packages can co-exist on the same system. Spack is designed for rapid creation of high-performance scientific applications on clusters and supercomputers.

Docs | GitHub

See also


trove-classifiers are classifiers used in the Python Package Index to systematically describe projects and make them easier to find. On the other hand, they are a package that contains a list of valid and obsolete classifiers that can be used for verification.

Docs | GitHub | PyPI


Command line programme that passes programme files and metadata to a web API. This allows Python packages to be uploaded to the Python Package Index.

Docs | GitHub | PyPI


Package that is in the Python standard library as of Python ≥ 3.3 and is intended for creating virtual environments.

Docs | GitHub


Tool that uses the path command line environment variable to create isolated Python virtual environments, similar to venv, but provides additional functionality for configuration, maintenance, duplication and debugging.

As of version 20.22.0, virtualenv no longer supports Python versions 2.7, 3.5 and 3.6.

Virtual environment

An isolated Python environment that allows packages to be installed for a specific application rather than system-wide.


The current code base that powers the Python Package Index (PyPI). It is hosted on

Docs | GitHub


Distribution format introduced with PEP 427. It is intended to replace the Egg format and is supported by current pip installations.

C extensions can be provided as platform-specific wheels for Windows, macOS and Linux on PyPI. This has the advantage for the users of the package that they don’t have to compile during the installation.

Home | Docs | PEP 427 | GitHub | PyPI |

See also


Simple Python wheel builder with automation options for trove-classifiers.