Glossary

build

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
bdist

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

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

Docs | GitHub | PyPI

See also

multibuild

conda

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 anaconda.org 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

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.

distutils

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

Docs | GitHub

egg

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

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

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

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

hatchling

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.

maturin

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

meson-python

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

module

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

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

See also

cibuildwheel

pdm

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

pex

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 __main__.py-Datei, die das Deployment von Python-Applikationen stark vereinfachen können.

Docs | GitHub | PyPI

pip

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

pip-tools

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

Docs | GitHub | PyPI

Pipenv

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
Pipfile.lock

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

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

Docs | GitHub | PyPI

piwheels

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

poetry

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

pybind11

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

Docs | GitHub | PyPI

pypi.org

pypi.org is the domain name for the Python Package Index (PyPI). In 2017 it replaced the old index domain name pypi.python.org. He is supported by warehouse.

pyproject.toml

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

Docs

See also

Python Package Index
PyPI

pypi.org is the standard package index for the Python community. All Python developers can use and distribute their distributions.

Python Packaging Authority
PyPA

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

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

release

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

One release can result in several Built Distributions.

scikit-build

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

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

shiv

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

Docs | GitHub | PyPI

source distribution
sdist

A distribution format (typically generated using) python setup.py sdist.

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

Spack

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

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

twine

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

venv

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

Docs | GitHub

virtualenv

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.

Warehouse

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

Docs | GitHub

wheel

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

whey

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