Mit twine veröffentlichen
Auf PyPI hochladen
Mit twine veröffentlichen ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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.
Der letzte Schritt
Sie haben Artefakte in dist/ erstellt. Der letzte Schritt besteht darin, sie auf PyPI hochzuladen, damit jeder Ihr Paket mit pip install installieren kann. Das Standardtool dafür ist twine.
twine lädt die Artefakte sicher über HTTPS hoch und validiert sie vor dem Versand.
twine installieren
Installieren Sie es mit pip install twine. Es ist ein kleines, spezialisiertes Tool: Seine Aufgabe besteht ausschließlich darin, die Dateien in dist/ zu validieren und hochzuladen. Es erstellt nichts.
Zuerst TestPyPI
Es gibt eine separate Sandbox namens TestPyPI, in der Sie Uploads testen können. Veröffentlichen Sie zuerst dort, um Probleme zu erkennen, ohne den echten Index zu verunreinigen. Namen und Versionen auf TestPyPI sind unabhängig von PyPI.
Laden Sie mit twine upload --repository testpypi dist/* hoch.
Vor dem Upload prüfen
twine check dist/* überprüft, ob Ihre Metadaten und die ausführliche Beschreibung auf PyPI korrekt dargestellt werden. Führen Sie den Befehl jedes Mal aus. Andernfalls könnte eine fehlerhafte README-Beschreibung auf Ihrer Projektseite als reiner Text angezeigt werden.
files = ['mytool-0.1.0.tar.gz', 'mytool-0.1.0-py3-none-any.whl']
for f in files:
status = 'PASSED' if f.endswith(('.gz', '.whl')) else 'SKIP'
print('check', f, '->', status)API-Tokens statt Passwörter
Authentifizieren Sie sich mit einem API-Token aus Ihrem PyPI-Konto, nicht mit Ihrem Passwort. Verwenden Sie __token__ als Benutzernamen und den Token, der mit pypi- beginnt, als Passwort. Tokens können auf ein einzelnes Projekt beschränkt und jederzeit widerrufen werden.
username = '__token__'
token = 'pypi-AgEIcHl...'
print('Username:', username)
print('Token starts with:', token[:5])
print('Never commit the token to git')Zugangsdaten speichern
Vermeiden Sie die erneute Eingabe von Tokens, indem Sie sie in einer Datei ~/.pypirc oder in Umgebungsvariablen (TWINE_USERNAME, TWINE_PASSWORD) speichern. Halten Sie diese Datei aus der Versionskontrolle heraus und stellen Sie sicher, dass nur Sie sie lesen können.
Auf PyPI hochladen
Sobald auf TestPyPI alles gut aussieht, veröffentlichen Sie das Paket mit twine upload dist/*. Innerhalb weniger Augenblicke kann Ihr Paket weltweit installiert werden. Das lässt sich nicht rückgängig machen: Nachdem Sie eine Version gelöscht haben, können Sie dieselbe Version nicht erneut hochladen.
Versionen sind unveränderlich
PyPI erlaubt niemals, eine veröffentlichte Version zu überschreiben. Wenn Sie nach der Veröffentlichung einen Fehler entdecken, müssen Sie eine neue Version veröffentlichen, zum Beispiel mit einer erhöhten Patch-Version. Verankern Sie diese Regel in Ihrem Workflow, damit Sie nie in eine Sackgasse geraten.
published = {'1.0.0', '1.0.1'}
new_version = '1.0.1'
if new_version in published:
print(new_version, 'already on PyPI - bump and rebuild')
else:
print(new_version, 'is free to upload')Installation überprüfen
Überprüfen Sie nach dem Upload, ob alles funktioniert: Erstellen Sie eine neue virtuelle Umgebung, führen Sie pip install mytool aus und importieren Sie das Paket anschließend. Eine Installation in einer sauberen Umgebung erkennt fehlende Dateien und Fehler bei Abhängigkeiten, die beim Erstellen des Pakets unbemerkt geblieben sind.
Trusted Publishing
Moderne Projekte können mit Trusted Publishing auf manuelle Tokens verzichten: PyPI authentifiziert einen CI-Workflow, etwa GitHub Actions, direkt über OpenID Connect. Dadurch wird nirgendwo ein langlebiges Geheimnis gespeichert, was sicherer ist.
twine übernimmt weiterhin den Upload, aber die Zugangsdaten sind nur kurz gültig und werden zur Laufzeit ausgestellt.
Releases automatisieren
Eine verbreitete Konfiguration löst einen Release aus, wenn Sie einen git-Tag wie v1.0.0 pushen. Der CI-Workflow erstellt das Paket, führt twine check aus und lädt es automatisch hoch. Das Setzen eines Tags wird so zur einzigen Aktion, mit der Sie eine Version veröffentlichen.
Dadurch bleiben Releases konsistent und manuelle Upload-Fehler werden vermieden.
Schnelltest
Testen Sie Ihr Wissen zum Veröffentlichen von Paketen.
Zusammenfassung
Sie haben ein Paket veröffentlicht:
pip install twine, anschließendtwine check dist/*- Testen Sie den Upload zuerst auf TestPyPI
- Authentifizieren Sie sich mit einem eingeschränkt gültigen API-Token (
__token__), niemals mit einem Passwort twine upload dist/*veröffentlicht das Paket. Versionen sind unveränderlich, daher müssen Sie zum Beheben von Fehlern die Versionsnummer erhöhen- Überprüfen Sie die Installation mit einem sauberen
pip install
Häufig gestellte Fragen
Ist die Lektion „Mit twine veröffentlichen“ kostenlos?
Ja — der vollständige Text von „Mit twine veröffentlichen“ 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 twine veröffentlichen“?
Auf PyPI hochladen 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 4 von 4.
Wie lange dauert die Lektion „Mit twine veröffentlichen“?
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