Glossar

build

build ist ein PEP 517-kompatibler Python-Paket-Builder. Er bietet eine CLI zum Erstellen von Paketen sowie eine Python-API.

Docs | GitHub | PyPI

Built Distribution
bdist

Eine Struktur aus Dateien und Metadaten, die bei der Installation nur an den richtigen Speicherort auf dem Zielsystem verschoben werden müssen. wheel ist ein solches Format, nicht jedoch distutil’s Source Distribution, die einen Build-Schritt erfordern.

cibuildwheel

cibuildwheel ist ein Python-Paket, das wheels für alle gängigen Plattformen und Python-Versionen auf den meisten CI-Systemen erstellt.

Docs | GitHub | PyPI

Siehe auch

multibuild

conda

Paketmanagement-Tool für die Anaconda-Distribution von Continuum Analytics. Sie ist speziell auf die wissenschaftliche Gemeinschaft ausgerichtet, insbesondere auf Windows, wo die Installation von binären Erweiterungen oft schwierig ist.

Conda installiert keine Pakete von PyPI und kann nur von den offiziellen Continuum-Repositories oder von anaconda.org oder lokalen (z.B. Intranet-) Paketservern installieren. Beachtet jedoch, dass pip in conda installiert werden und Seite an Seite arbeiten kann, um Distributionen von PyPI zu verwalten.

devpi

devpi ist ein leistungsstarker PyPI-kompatibler Server und ein PyPI-Proxy-Cache mit einem Befehlszeilenwerkzeug um Paketierungs-, Test- und Veröffentlichungsaktivitäten zu ermöglichen.

Docs | GitHub | PyPI

Distribution Package

Eine versionierte Archivdatei, die Python-Pakete, -Module und andere Ressourcendateien enthält, die zum Verteilen eines Releases verwendet werden.

distutils

Paket der Python-Standardbibliothek, das Unterstützung für das Bootstrapping von pip in eine bestehende Python-Installation oder virtuelle Umgebung bietet.

Docs | GitHub

Egg

Ein Built Distribution-Format, das von Setuptools eingeführt wurde und nun durch wheel ersetzt wird. Weitere Informationen findet ihr unter The Internal Structure of Python Eggs und Python Eggs.

enscons

enscons ist ein Python-Paketierungswerkzeug, das auf SCons basiert. Es erstellt pip-kompatible Source Distributions und wheels ohne Verwendung von distutils oder setuptools, einschließlich Distributionen mit C-Erweiterungen. enscons hat eine andere Architektur und Philosophie als distutils, da es Python-Paketierung zu einem allgemeinen Build-System hinzufügt. enscons kann euch helfen, sdists und wheels zu bauen.

GitHub | PyPI

Flit

Flit bietet eine einfache Möglichkeit, reine Python-Pakete und -Module zu erstellen und auf den Python Package Index hochzuladen. Flit kann eine Konfigurationsdatei generieren, um schnell ein Projekt einzurichten, eine Source Distribution und ein wheel zu erstellen und sie zu PyPI hochzuladen.

Flit verwendet pyproject.toml, um ein Projekt zu konfigurieren. Flit ist nicht auf Werkzeuge wie setuptools angewiesen, um Distributionen zu erstellen, oder auf twine, um sie auf PyPI hochzuladen.

Docs | GitHub | PyPI

Hatch

Hatch ist ein Kommandozeilenwerkzeug, das ihr zum Konfigurieren und Versionieren von Paketen, zum Spezifizieren von Abhängigkeitengenutzt werden kann. Das Plugin-System ermöglicht die einfache Erweiterung der Funktionalitäten.

Docs | GitHub | PyPI

hatchling

Build-Backend von Hatch, das auch zum Veröffentlichen auf dem Python Package Index genutzt werden kann.

Import Package

Ein Python-Modul, das andere Module oder rekursiv andere Pakete enthalten kann.

maturin

Vormals pyo3-pack, ist ein PEP 621-kompatibles Build-Tool für binäre Erweiterungen in Rust.

meson-python

Build-Backend, das das Meson-Build-System verwendet. Es unterstützt eine Vielzahl von Sprachen, einschließlich C, und ist in der Lage, die Anforderungen der meisten komplexen Build-Konfigurationen zu erfüllen.

Docs | GitHub | PyPI

Modul

Die Grundeinheit der Wiederverwendbarkeit von Code in Python, die in einem von zwei Typen existiert:

Pure Module

Ein Modul, das in Python geschrieben wurde und in einer einzigen .py-Datei enthalten ist (und möglicherweise zugehörigen .pyc- und/oder .pyo-Dateien).

Extension Module

In der Regel in eine einzelne dynamisch ladbare vorkompilierte Datei, z. B. einer gemeinsamen Objektdatei (.so).

multibuild

multibuild ist ein Satz von CI-Skripten zum Erstellen und Testen von Python-wheels für Linux, macOS und Windows.

Siehe auch

cibuildwheel

pdm

Python-Paketmanager mit PEP 582-Unterstützung. Er installiert und verwaltet Pakete ohne dass eine virtuelle Umgebung erstellt werden muss. Er verwendet auch pyproject.toml, um Projekt-Metadaten zu speichern, wie in PEP 621 definiert.

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

Beliebtes Werkzeug für die Installation von Python-Paketen, das in neuen Versionen von Python enthalten ist.

Es bietet die wesentlichen Kernfunktionen zum Suchen, Herunterladen und Installieren von Paketen aus dem Python Package Index und andere Python-Paketverzeichnissen und kann über eine Befehlszeilenschnittstelle (CLI) in eine Vielzahl von Entwicklungsabläufen eingebunden werden.

Docs | GitHub | PyPI

pip-tools

Reihe von Werkzeugen, die eure Builds deterministisch halten und dennoch mit neuen Versionen eurer Abhängigkeiten auf dem Laufenden halten können.

Docs | GitHub | PyPI

Pipenv

Pipenv bündelt Pipfile, pip und virtualenv in einer einzigen Toolchain. Es kann die requirements.txt automatisch importieren und mithilfe von safety die Umgebung auch auf CVEs prüfen. Schließlich erleichtert es auch die Deinstallation von Paketen und deren Abhängigkeiten.

Docs | GitHub | PyPI

Pipfile
Pipfile.lock

Pipfile und Pipfile.lock sind eine übergeordnete, anwendungsorientierte Alternative zu pip’s requirements.txt-Datei. Die PEP 508 Environment Markers werden ebenfalls unterstützt.

Docs | GitHub

pipx

pipx untertüzt euch, Abhängigkeitskonflikte mit anderen auf dem System installierten Paketen zu vermeiden.

Docs | GitHub | PyPI

piwheels

Website und zugrundeliegende Software, die Source Distribution-Pakete von PyPI holt und sie in binäre wheels kompiliert, die für die Installation auf Raspberry Pis optimiert sind.

Home | Docs | GitHub

poetry

Eine All-in-One-Lösung für reine Python-Projekte. Es ersetzt setuptools, venv/pipenv, pip, wheel und twine. Sie macht jedoch einige schlechte Standardannahmen für Bibliotheken und die pyproject.toml-Konfiguration ist nicht standardkonform.

Docs | GitHub | PyPI

pybind11

Dies ist setuptools, aber mit einer C++-Erweiterung und von cibuildwheel generierten wheels.

Docs | GitHub | PyPI

pypi.org

pypi.org ist der Domainname für den Python Package Index (PyPI). Er löste 2017 den alten Index-Domain-Namen pypi.python.org ab. Er wird von warehouse unterstützt.

pyproject.toml

Werkzeugunabhängige Datei zur Spezifikation von Projekten, die in PEP 518 definiert ist.

Docs

Siehe auch

Python Package Index
PyPI

pypi.org ist der Standard-Paket-Index für die Python-Community. Alle Python-Entwickler können ihre Distributionen nutzen und verteilen.

Python Packaging Authority
PyPA

Die Python Packaging Authority ist eine Arbeitsgruppe, die mehrere Softwareprojekte für die Paketierung, Verteilung und Installation von Python-Bibliotheken verwaltet. Die in PyPA Goals genannten Ziele sind jedoch noch während der Diskussionen um PEP 516, PEP 517 und PEP 518 entstanden, die mit dem pyproject.toml-basierten Build-System konkurrierende Workflows erlaubten, die nicht interoperabel sein müssen.

readme_renderer

readme_renderer ist eine Bibliothek, die verwendet wird, um Dokumentation aus Auszeichnungssprachen wie Markdown oder reStructuredText in HTML zu rendern. Ihr könnt sie verwenden, um zu prüfen, ob eure Paketbeschreibungen auf PyPI korrekt angezeigt werden.

GitHub | PyPI

Release

Der Snapshot eines Projekts zu einem bestimmten Zeitpunkt, gekennzeichnet durch eine Versionskennung.

Eine Veröffentlichung kann mehrere Built Distributions zur Folge haben.

scikit-build

Build-System-Generator für C-, C++-, Fortran- und Cython-Erweiterungen, der setuptools, wheel und pip integriert. Er verwendet intern CMake, um eine bessere Unterstützung für zusätzliche Compiler, Build-Systeme, Cross-Compilation und das Auffinden von Abhängigkeiten und deren zugehörigen Build-Anforderungen zu bieten. Um die Erstellung großer Projekte zu beschleunigen und zu parallelisieren, kann zusätzlich Ninja installiert werden.

Docs | GitHub | PyPI

setuptools

setuptools sind das klassische Build-System, das sehr leistungsfähig ist, aber mit steiler Lernkurve und hohem Konfigurationsaufwand. Ab Version 61.0.0 unterstützen die setuptools auch pyproject.toml-Dateien.

Docs | GitHub | PyPI

shiv

Kommandozeilenprogramm zur Erstellung von Python-Zip-Apps, wie sie in PEP 441 beschrieben sind, aber zusätzlich mit allen Abhängigkeiten.

Docs | GitHub | PyPI

Source Distribution
sdist

Ein Verteilungsformat (das normalerweise mithilfe von python setup.py sdist generiert wird).

Es stellt Metadaten und die wesentlichen Quelldateien bereit, die für die Installation mit einem Tool wie Pip oder zum Generieren von Built Distributions benötigt werden.

Spack

Flexibler Paketmanager, der mehrere Versionen, Konfigurationen, Plattformen und Compiler unterstützt. Beliebig viele Versionen von Paketen können auf demselben System koexistieren. Spack wurde für die schnelle Erstellung von wissenschaftlichen Hochleistungsanwendungen auf Clustern und Supercomputern entwickelt.

Docs | GitHub

Siehe auch

trove-classifiers

trove-classifiers sind zum einen Klassifikatoren, die im Python Package Index verwendet werden, um Projekte systematisch zu beschreiben und besser auffindbar zu machen. Zum anderen sind sie ein Paket, das eine Liste gültiger und veralteter Klassifikatoren enthält, das zur Überprüfung verwendet werden kann.

Docs | GitHub | PyPI

twine

Kommandozeilenprogramm, das Programmdateien und Metadaten an eine Web-API übergibt. Damit lassen sich Python-Pakete auf den Python Package Index hochladen.

Docs | GitHub | PyPI

venv

Paket, das ab Python ≥ 3.3 in der Python-Standardbibliothek ist und zur Erstellung virtueller Umgebungen gedacht ist.

Docs | GitHub

virtualenv

Werkzeug, das die Befehlszeilen-Umgebungsvariable path verwendet, um isolierte virtuelle Python-Umgebungen zu erstellen, ähnlich wie venv. Es bietet jedoch zusätzliche Funktionalität für die Konfiguration, Wartung, Duplizierung und Fehlerbehebung.

Ab Version 20.22.0 unterstützt virtualenv nicht mehr die Python-Versionen 2.7, 3.5 und 3.6.

Virtuelle Umgebung

Eine isolierte Python-Umgebung, die die Installation von Paketen für eine bestimmte Anwendung ermöglicht, anstatt sie systemweit zu installieren.

Warehouse

Die aktuelle Codebasis, die den Python Package Index (PyPI) antreibt. Sie wird auf pypi.org gehostet.

Docs | GitHub

wheel

Distributionsformat, das mit PEP 427 eingeführt wurde. Es soll das Egg-Format ersetzen und wird von aktuellen pip-Installationen unterstützt.

C-Erweiterungen können als plattformspezifische wheels für Windows, macOS und Linux auf dem PyPI bereitgestellt werden. Dies hat für euch den Vorteil, dass ihr bei der Installation des Pakets dieses nicht kompilieren zu müssen.

Home | Docs | PEP 427 | GitHub | PyPI

Siehe auch

whey

Einfacher Python-wheel-Builder mit Automatisierungsoptionen für trove-classifiers.