Mit build erstellen
Wheels und sdists erstellen
Mit build erstellen ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was das Bauen bedeutet
Ihr Quellcode muss in Distributionsartefakte umgewandelt werden, die pip installieren kann. Das moderne Tool dafür ist build, ausgeführt als python -m build.
Es erzeugt zwei Arten von Dateien: eine Quelldistribution und eine Wheel-Datei.
sdist vs. wheel
Es gibt zwei Artefakttypen:
- sdist (.tar.gz) ein Quellarchiv; pip baut es bei der Installation
- wheel (.whl) ein vorgebautes Archiv; pip entpackt es lediglich
Wheels werden schneller installiert und bevorzugt. Die sdist dient als Fallback und ist die maßgebliche Quelle.
Das Build-Tool installieren
Installieren Sie es einmalig mit pip install build. Es ist ein schlankes Frontend: Es liest Ihre pyproject.toml, richtet eine isolierte Umgebung ein und ruft Ihr Build-Backend auf, um die Artefakte zu erstellen.
Sie rufen das Backend nicht direkt auf; build koordiniert den Vorgang.
Den Build ausführen
Führen Sie im Projektstamm python -m build aus. Standardmäßig erstellt der Befehl eine sdist und eine Wheel-Datei und legt sie in einem neuen Verzeichnis dist/ ab.
Verwenden Sie --wheel oder --sdist, um nur eine der beiden Varianten zu bauen.
args = []
targets = []
if '--sdist' in args:
targets.append('sdist')
if '--wheel' in args:
targets.append('wheel')
if not targets:
targets = ['sdist', 'wheel']
print('Will build:', targets)Wheel-Dateinamen
Wheel-Namen enthalten Metadaten: mytool-0.1.0-py3-none-any.whl bedeutet den Namen mytool, die Version 0.1.0, Python 3, keine ABI-Anforderung und eine beliebige Plattform. Reine Python-Pakete erhalten py3-none-any.
name = 'mytool'
version = '0.1.0'
wheel = name + '-' + version + '-py3-none-any.whl'
print(wheel)
print('Parts:', wheel[:-4].split('-'))Build-Isolierung
Standardmäßig erstellt build eine neue virtuelle Umgebung, installiert dort die unter [build-system] angegebenen requires und führt den Build in dieser Umgebung aus. Dadurch hängt der Build nicht versehentlich von Paketen ab, die zufällig in Ihrer Umgebung installiert sind.
Das dist-Verzeichnis prüfen
Nach einem Build enthält dist/ Ihre Artefakte. Eine Auflistung bestätigt, was erzeugt wurde, bevor Sie die Dateien hochladen. Das ist eine gewöhnliche Verzeichnisauflistung.
dist = ['mytool-0.1.0.tar.gz', 'mytool-0.1.0-py3-none-any.whl']
for f in dist:
kind = 'sdist' if f.endswith('.tar.gz') else 'wheel'
print(kind.ljust(6), f)Eine Wheel-Datei prüfen
Eine Wheel-Datei ist lediglich ein ZIP-Archiv. Sie können sie entpacken, um zu überprüfen, ob Ihre Module und Datendateien vorhanden sind und nichts Wichtiges fehlt. Wenn hier eine Datei fehlt, wird sie auch nach der Installation fehlen.
Saubere Builds
Veraltete Dateien in build/ oder dist/ können zu verwirrenden Ergebnissen führen. Löschen Sie diese Verzeichnisse vor einem Release-Build, damit Sie genau das veröffentlichen, was der aktuelle Quellcode erzeugt.
stale_dirs = ['build', 'dist', 'mytool.egg-info']
for d in stale_dirs:
print('Remove before clean build:', d)Reproduzierbare Builds
Aus demselben Quellcode sollten immer dieselben Artefakte entstehen. Fixieren Sie die Versionen Ihres Build-Backends in [build-system] requires und vermeiden Sie es, Werte aus der laufenden Umgebung zu übernehmen. Reproduzierbarkeit bedeutet, dass ein Teammitglied oder ein CI-Server eine identische Ausgabe erhält.
Zusammen mit sauberen Builds verhindert dies Überraschungen nach dem Muster „auf meinem Rechner funktioniert es“.
In CI bauen
Die meisten Projekte werden auf einem Continuous-Integration-Server statt auf einem Laptop gebaut. Ein CI-Job checkt den Code aus, führt python -m build aus und speichert die Artefakte. Dadurch stammen Releases jedes Mal aus einem bekannten, sauberen Zustand.
In CI wird exakt derselbe Befehl ausgeführt wie lokal.
Kurzer Check
Testen Sie Ihr Wissen über Builds.
Zusammenfassung
Sie haben gelernt, Artefakte zu bauen:
pip install buildund anschließendpython -m buildausführen- Eine sdist (.tar.gz) und eine wheel (.whl) in
dist/erzeugen - Builds in einer isolierten Umgebung mit den
[build-system]-requiresausführen - Die Wheel-Datei prüfen und vor einer Veröffentlichung saubere Builds durchführen
Häufig gestellte Fragen
Ist die Lektion „Mit build erstellen“ kostenlos?
Ja — der vollständige Text von „Mit build erstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Mit build erstellen“?
Wheels und sdists erstellen Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Python Academy zu starten?
Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Mit build erstellen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?
Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Projektstruktur und pyproject.toml
- Mit build erstellen
- Versionierung und Metadaten
- Mit twine veröffentlichen