Poetry vereinfacht den Veröffentlichungsprozess von Python-Paketen auf PyPI erheblich. Durch wenige einfache Befehle kannst Du Dein Paket veröffentlichen und verwalten. Sobald Dein Paket auf PyPI verfügbar ist, können andere Entwickler es installieren und verwenden.
Poetry ist ein beliebtes Tool zum Verwalten von Abhängigkeiten und Erstellen von Python-Paketen. Wenn Du ein eigenes Python-Paket auf dem Python Package Index (PyPI) veröffentlichen möchtest, kannst Du dies einfach mit Poetry tun. In diesem Tutorial zeige ich Dir, wie Du ein Paket vorbereitest und auf PyPI veröffentlichst.
Um ein Paket auf PyPI zu veröffentlichen, benötigst Du ein PyPI-Konto. Gehe dazu auf pypi.org und registriere Dich, falls Du noch kein Konto hast. Installiere auch Poetry, falls noch nicht geschehen. Du kannst Poetry unter Linux mit dem folgenden Befehl installieren:
curl -sSL https://install.python-poetry.org | python3 -
Falls du dich auf einem anderen System befindest oder curl kein Weg für dich ist, gibt es auch noch andere Möglichkeiten, Peotry zu installieren:
Beginne mit der Erstellung eines neuen Python-Projekts mit Poetry. Wechsle in das Verzeichnis, in dem das Paket gespeichert werden soll, und führe den folgenden Befehl aus:
poetry new mein_paket
Poetry erstellt eine Ordnerstruktur mit der Datei pyproject.toml, in der alle Paketinformationen und Abhängigkeiten definiert werden.
mein_paket
├── pyproject.toml
├── README.md
├── mein_paket
│ └── __init__.py
└── tests
└── __init__.py
In der Datei pyproject.toml findest Du Einträge wie name, version, description, und author. Ändere diese Einträge nach Deinen Anforderungen, da sie die Metadaten Deines Pakets auf PyPI festlegen. Ein Beispiel für eine bearbeitete pyproject.toml sieht so aus:
[tool.poetry]
name = "mein-paket"
version = "0.1.0"
description = ""
authors = ["Captain Solaris <hello@example.com>"]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.12"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
Die Zeile python gibt die Python-Version an, die das Paket benötigt. In diesem Beispiel wird Python 3.12 oder höher vorausgesetzt.
Um neue Abhängigkeiten hinzuzufügen, können die entweder unter den Dependencies manuell oder per folgendem Befehlt interaktiv eingetragen werden.
poetry add pendulum
Um zu sehen, wo die virtuelle Umgebung für das Projekt angelegt wurde, in die die Pakete installiert werden, kann dieser Befehl genutzt werden
poetry env info
Um eine Datei mit Poetry zu starten, wird der RUN-Befehl benötigt.
poetry python run main.py
Mit dem groups-Befehl lassen sich Gruppen von Dependencies anlegen. Im folgenden Beispiel wird eine Gruppe dev angelegt und ihr einige Dependencies zugewiesen.
poetry add --group dev black flake8 isort mypy pylint
automatisch wird die Gruppe in die pyproject.toml eingetragen.
[tool.poetry.group.dev.dependencies]
black = "^24.10.0"
flake8 = "^7.1.1"
isort = "^5.13.2"
mypy = "^1.13.0"
pylint = "^3.3.1"
Um einen Linter zu starten, führt man wieder das RUN Command aus:
poetry run black .
Löschen von Dependencies aus einer Gruppe führt über remove:
poetry remove --group dev ruff
Um beim Installieren der Dependencies in einer anderen Umgebung, zum Beispiel einer Produktiv-Umgebung, nur die Main-Dependencies zu installieren, muss der Install-Befehl so ausgeführt werden.
rm poetry.lock
poetry env remove --all
poetry install --without test,dev
Bevor Du das Paket veröffentlichst, teste es lokal. Wechsle dazu in das Projektverzeichnis und baue das Paket mit Poetry. Es werden nur die Dependencies genutzt, die unter den Main-Dependencies eingetragen sind. Dev und Test-Gruppen werden im Build-Prozess ignoriert.
poetry build
Poetry erstellt im Ordner dist zwei Dateien: ein Wheel und eine Source Distribution (tar.gz). Diese beiden Dateien sind die distributablen Versionen Deines Pakets. Installiere das Paket lokal, um sicherzustellen, dass alles funktioniert
pip install dist/mein_paket-0.1.0-py3-none-any.whl
Wenn alles wie erwartet läuft, bist Du bereit für die Veröffentlichung.
Für die Veröffentlichung auf PyPI muss Poetry Deine Anmeldedaten kennen. Führe den folgenden Befehl aus, um Dich bei PyPI anzumelden und einen API-Token zu erstellen
poetry config pypi-token.pypi <DEIN_API_TOKEN>
Gehe auf pypi.org, melde Dich an, und gehe zu Account Settings. Erstelle einen neuen API-Token und ersetze
Wenn alle vorherigen Schritte erfolgreich abgeschlossen sind, kannst Du das Paket mit einem einzigen Befehl auf PyPI veröffentlichen
poetry publish --build
Mit der Option --build erstellt Poetry das Paket erneut und lädt es auf PyPI hoch. Falls alles korrekt ist, erscheint Dein Paket in wenigen Minuten auf pypi.org und ist damit öffentlich verfügbar.
Falls Du später eine neue Version des Pakets veröffentlichen möchtest, erhöhe die Versionsnummer in der Datei pyproject.toml. Ändere z. B. die Zeile version von 0.1.0 auf 0.2.0. Führe dann erneut poetry publish --build aus, um die aktualisierte Version auf PyPI zu veröffentlichen.
[tool.poetry]
version = "0.2.0"
Durch das Ändern der Versionsnummer und erneutes Veröffentlichen stellst Du sicher, dass Benutzer immer die neueste Version Deines Pakets erhalten.
Finden Sie interessante und zum Thema passende Kurse
Beginnen Sie Ihre Programmierkarriere mit unserem Python-Einführungskurs. Erlernen Sie grundlegende Konzepte wie Variablen, Schleifen und Datenstrukturen und bauen Sie eine solide Basis in Python auf. Durch praxisnahe Projekte und kompetente Anleitung entwickeln Sie wertvolle Programmierfähigkeiten.
5 Tage Vollzeit auch als Feierabendkurs Online
Nächster Termin: 20. Januar 2025
Preis pro Person: 1600,00 EUR
Rabattaktion: 3 für den Preis von 2!
Entdecken Sie die fortgeschrittenen Funktionen von Django in unserem intensiven Aufbaukurs. Dieser Kurs richtet sich an Entwickler, die bereits mit den Grundlagen von Django vertraut sind und ihre Fähigkeiten auf das nächste Level bringen möchten. Lernen Sie, wie Sie komplexe Anwendungen mit Docker erstellen, eine CD/CI-Pipeline anlegen, APIs integrieren und das Projekt auf einen Server deployen.
5 Tage Vollzeit Online
Nächster Termin: 10. März 2025
Preis pro Person: 1900,00 EUR
Rabattaktion: 3 für den Preis von 2!
In diesem intensiven 5-Tage-Seminar lernen Entwickler, professionelle REST-APIs mit dem Django REST Framework zu erstellen, zu optimieren und zu testen.
5 Tage Vollzeit Online
Nächster Termin: 27. Januar 2025
Preis pro Person: 1600,00 EUR
Rabattaktion: 3 für den Preis von 2!
In diesem dreitägigen Data Science Seminar mit Python lernen Teilnehmer, wie sie Daten effizient mit Python-Datenstrukturen verarbeiten, analysieren und visualisieren. Die Schulung umfasst die Arbeit mit NumPy und Pandas sowie die Erstellung von aussagekräftigen Diagrammen mit Matplotlib.
3 Tage Vollzeit Online
Nächster Termin: noch kein Datum bekannt
Preis pro Person: 1200,00 EUR
Rabattaktion: 3 für den Preis von 2!