meson-python¶
Ein Python-Paket-Build-Backend, das das Meson-Build-System nutzt.
meson-python implementiert die Python-Build-System-Hooks und ermöglicht es Python-Build-Frontends wie pip und build, Python-Pakete basierend auf einer Meson-Build-Definition zu erstellen und zu installieren.
Meson zeichnet sich durch Build-Definitionen aus, die in einer sehr lesbaren domänenspezifischen Sprache geschrieben sind, und durch extrem schnelle Builds. Meson unterstützt Windows, macOS, Linux und andere UNIX-ähnliche Betriebssysteme sowie alle wichtigen Compiler-Toolchains. Es ermöglicht das Kompilieren und Verknüpfen von Code, der in vielen Programmiersprachen geschrieben ist, darunter C, C++, Cython, D, Fortran, Objective C und Rust. Es verfügt über einen integrierten Multi-Plattform-Abhängigkeitsanbieter, der gut mit Verteilungspaketen funktioniert, und die Fähigkeit, Abhängigkeiten als Unterprojekte zu erstellen. Wenn Sie mit Meson nicht vertraut sind, empfehlen wir Ihnen, das Meson-Tutorial zu lesen.
meson-python erbt die Stärken von Meson und eignet sich daher am besten für Python-Pakete, die Erweiterungsmodule in kompilierten Sprachen erstellen. meson-python ist sowohl für kleine als auch für sehr komplexe Pakete geeignet. Sehen Sie sich unser Beispielverzeichnis an.
Um pip oder build zu ermöglichen, eine Python-Quellcode-Distribution (sdist) oder ein binäres Python-Paket (wheel) für ein Meson-Projekt zu erstellen, genügt es, am Stammverzeichnis des Quellbaums neben der obersten Ebene meson.build eine pyproject.toml-Datei hinzuzufügen, die meson-python als Python-Build-Backend angibt.
[build-system]
build-backend = 'mesonpy'
requires = ['meson-python']
Der Paketname und die Version werden aus den Metadaten extrahiert, die Meson über die Funktion project() in der meson.build-Datei bereitgestellt werden. Paketmetadaten können mithilfe des Standardformats für Paketmetadaten im Abschnitt project von pyproject.toml überschrieben und erweitert werden.
[project]
name = 'example'
version = '1.0.0'
description = 'Example package using the meson-python build backend'
readme = 'README.rst'
license = {file = 'LICENSE.txt'}
authors = [
{name = 'Au Thor', email = 'author@example.com'},
]
[project.scripts]
example = 'example.cli:main'
Bitte beachten Sie die PyPA-Dokumentation für detaillierte Informationen zur pyproject.toml-Datei. Bitte beachten Sie unser Tutorial für Anleitungen zur Verwendung von meson-python und Meson für Python-Packaging.