Was ist Poesie für Python? So verwenden Sie Poetry zum Verwalten der Abhängigkeit von Python-Projekten. Poesie als Different zu Pip.
Poesie bezieht sich auf ein Python-Paket- und Abhängigkeitsverwaltungstool, das eine einfache und zuverlässige Möglichkeit zur Verwaltung von Python-Projekten bieten soll. Es wurde entwickelt, um einige der Mängel der älteren Instruments wie pip und virtualenv zu beheben.
Poetry hilft dabei, Projektabhängigkeiten, virtuelle Umgebungen und Construct-Prozesse auf pythonische Weise zu verwalten. Es verwendet eine pyproject.toml-Datei, um Projektmetadaten, Abhängigkeiten und andere projektbezogene Konfigurationen anzugeben.
Das Paketverwaltungstool Poetry wurde von Sébastien Eustace erstellt und erstmals am 4. März 2018 veröffentlicht. Es wurde entwickelt, um einige der Schwachstellen und Mängel bestehender Python-Paketverwaltungstools wie pip und virtualenv zu beheben.
- Herkunft und Motivation: Sébastien Eustace, ein französischer Softwareentwickler, conflict der Ansicht, dass den vorhandenen Python-Paketverwaltungstools bestimmte Funktionen fehlten und sie keine ganzheitliche Lösung für die Verwaltung von Python-Projekten boten. Er machte sich daran, ein neues Instrument zu entwickeln, das ein besseres Abhängigkeitsmanagement, Unterstützung für virtuelle Umgebungen und Paketierungsfunktionen bietet und gleichzeitig die Greatest Practices von Python einhält.
- Erstveröffentlichung: Die erste öffentliche Veröffentlichung von Poetry (Model 0.12.0) erfolgte am 4. März 2018. Von Anfang an zielte Poetry darauf ab, ein moderneres und benutzerfreundlicheres Paketverwaltungstool zu sein.
- Frühe Entwicklung und Gemeinschaftswachstum: Nach der ersten Veröffentlichung gewann das Projekt aufgrund seiner Einfachheit und verbesserten Arbeitsabläufe an Bedeutung in der Python-Neighborhood. Die Entwickler empfanden Poetry als hilfreich für die Verwaltung von Abhängigkeiten, die Sicherstellung der Konsistenz und die Rationalisierung von Verpackungsprozessen.
- Model 1.0: Am 18. November 2019 erreichte Poetry seinen Meilenstein Model 1.0. Mit dieser Veröffentlichung galt das Projekt als stabil und bereit für den Produktionseinsatz. Model 1.0 festigte die Place von Poetry als zuverlässiges und wertvolles Paketverwaltungstool im Python-Ökosystem.
- Kontinuierliche Verbesserungen: Seit Model 1.0 erhielt das Poetry-Projekt weiterhin regelmäßige Updates, Fehlerbehebungen und Verbesserungen. Das Entwicklungsteam hat aktiv auf das Suggestions der Neighborhood gehört und Anpassungen vorgenommen, um die Funktionen und die Benutzerfreundlichkeit des Instruments zu verbessern.
- Integration mit PyPA: Im Laufe der Zeit erlangte Poetry Anerkennung und Akzeptanz bei der Python Packaging Authority (PyPA), der Gruppe, die für die Verwaltung vieler verpackungsbezogener Instruments von Python verantwortlich ist. Poetry wurde zu einem offiziellen PyPA-Projekt und festigte damit seine Place als intestine unterstütztes Paketverwaltungstool.
- Über Model 1.0 hinaus: Über die Model 1.0 hinaus entwickelte sich Poetry weiter und erweiterte seine Fähigkeiten. Regelmäßig wurden neue Funktionen, Optimierungen und Kompatibilitätsupdates eingeführt, um mit dem sich weiterentwickelnden Ökosystem von Python Schritt zu halten.
- Neighborhood-Beiträge: Der Erfolg von Poetry ist teilweise auf die lebendige Python-Neighborhood und die Beiträge vieler Entwickler zurückzuführen. Die Neighborhood half dabei, Probleme zu identifizieren, Suggestions zu geben und Code beizusteuern, um Poetry noch besser zu machen.
Zu den Hauptmerkmalen der Poesie gehören:
Abhängigkeitsmanagement: Mit Poetry können Sie die Abhängigkeiten Ihres Projekts in der Datei pyproject.toml definieren und so das Hinzufügen, Entfernen und Aktualisieren von Paketen vereinfachen.
Virtuelles Umgebungsmanagement: Poetry erstellt eine virtuelle Umgebung für Ihr Projekt, isoliert Abhängigkeiten von der System-Python-Set up und sorgt so für eine konsistente und reproduzierbare Umgebung.
Datei sperren: Poetry generiert eine Datei „poetry.lock“, um sicherzustellen, dass die spezifischen Versionen Ihrer Abhängigkeiten in verschiedenen Umgebungen verwendet werden. Dies hilft bei der Erzielung deterministischer Builds.
Paketerstellung: Poetry bietet eine einfache Möglichkeit, Ihr Python-Projekt für die Verteilung zu erstellen und zu verpacken.
Versionsverwaltung: Poetry hilft bei der Versionsverwaltung und vereinfacht das Erhöhen der Versionsnummer Ihres Projekts.
Poetry und pip sind beide Python-Paketverwaltungstools, dienen jedoch unterschiedlichen Zwecken und verfügen über unterschiedliche Funktionen. Hier sind einige wichtige Unterschiede zwischen Poetry und Pip:
Abhängigkeitsmanagement
Pip: pip ist das Standardpaketinstallationsprogramm für Python und kann Pakete aus dem Python Package deal Index (PyPI) installieren. Es erfordert eine Datei „necessities.txt“, um Projektabhängigkeiten anzugeben, aber transitive Abhängigkeiten (Abhängigkeiten von Abhängigkeiten) werden nicht so elegant gehandhabt.
Poesie: Poetry ist ein vollständiges Paket- und Abhängigkeitsmanagement-Instrument. Es verwendet eine pyproject.toml-Datei, um Abhängigkeiten, Entwicklungsabhängigkeiten und andere Projekteinstellungen zu verwalten. Es verarbeitet transitive Abhängigkeiten automatisch und generiert eine Datei „poetry.lock“, um deterministische Builds mit angehefteten Abhängigkeitsversionen sicherzustellen.
Virtuelle Umgebungen
Pip: pip bietet keine native Unterstützung für die Verwaltung virtueller Umgebungen. Entwickler verwenden häufig andere Instruments wie Virtualenv, um isolierte Umgebungen für ihre Projekte zu erstellen.
Poesie: Poetry erstellt automatisch eine virtuelle Umgebung für jedes Projekt und stellt so sicher, dass Projektabhängigkeiten von der System-Python-Umgebung isoliert sind. Dies vereinfacht den Prozess und vermeidet die Notwendigkeit externer Verwaltungstools für virtuelle Umgebungen.
Versionierung und Sperrung
Pip: pip basiert auf der Datei „necessities.txt“, die Paketversionen angeben kann, aber keine integrierte Unterstützung für das Sperren von Abhängigkeiten bietet. Dies kann zu potenziellen Problemen mit inkonsistenter Abhängigkeitsauflösung in verschiedenen Umgebungen führen.
Poesie: Poetry generiert eine Datei „poetry.lock“, die die genauen Versionen aller im Projekt verwendeten Abhängigkeiten anheftet. Diese Sperrdatei stellt sicher, dass alle Installationen des Projekts dieselben Abhängigkeitsversionen verwenden, wodurch deterministische Builds bereitgestellt werden und Versionskonflikte vermieden werden.
Projektmetadaten- und Skriptverwaltung
Pip:pip konzentriert sich ausschließlich auf die Paketinstallation und kümmert sich nicht um Projektmetadaten oder Skriptverwaltung.
Poesie: Poetry umfasst die Projektmetadatenverwaltung, sodass Sie verschiedene Projekteinstellungen in der Datei pyproject.toml definieren können. Es bietet außerdem eine praktische Möglichkeit zur Verwaltung projektspezifischer Skripts und erleichtert so die Ausführung benutzerdefinierter Befehle im Zusammenhang mit dem Projekt.
Verpackung
Pip: pip bietet keine integrierten Instruments zum Verpacken von Projekten zur Verteilung.
Poesie: Poetry bietet integrierte Unterstützung für das Packen von Python-Projekten, wodurch es einfach ist, verteilbare Pakete (z. B. Wheel oder Sdist) zu erstellen, die geteilt oder in Repositories veröffentlicht werden können.
Zuerst müssen wir Poetry auf unserem System installieren:
pip set up poetry
Erstellen Sie ein neues Python-Projekt und wechseln Sie in das Projektverzeichnis:
mkdir my_project
cd my_project
Initialisieren Sie ein neues Poetry-Projekt:
poetry init
Befolgen Sie die Anweisungen, um Informationen zu Ihrem Projekt bereitzustellen. Es wird eine Datei „pyproject.toml“ mit den erforderlichen Informationen generiert.
Fügen Sie Projektabhängigkeiten mit Poetry hinzu:
poetry add requests
Dadurch wird das Paket „requests“ als Abhängigkeit zu Ihrem Projekt hinzugefügt und die Datei pyproject.toml aktualisiert.
Erstellen Sie ein einfaches Python-Skript, das das installierte Paket verwendet. Erstellen Sie in Ihrem Projektverzeichnis eine Datei namens fundamental.py mit folgendem Inhalt:
import requestsdef fundamental():
response = requests.get('https://api.github.com')
if response.status_code == 200:
print('Success! Related to GitHub API.')
else:
print('Failed to hook up with GitHub API.')
if __name__ == "__main__":
fundamental()
Führen Sie das Python-Skript mit Poetry aus:
poetry run python fundamental.py
Poetry erstellt automatisch eine virtuelle Umgebung für Ihr Projekt, installiert die erforderlichen Abhängigkeiten (z. B. „Anfragen“) und führt das fundamental.py-Skript in dieser Umgebung aus.
Darüber hinaus können Sie die von Poetry erstellte virtuelle Umgebung mit dem folgenden Befehl überprüfen:
poetry env record
Sie sehen eine Ausgabe ähnlich dieser:
my_poetry_project-abc123 /path/to/my_poetry_project/.venv pythonX.X.X
Dies zeigt an, dass Poetry eine virtuelle Umgebung mit dem Namen my_poetry_project-abc123 für Ihr Projekt erstellt hat.
Poetry generiert außerdem eine Datei „poetry.lock“, die die genauen Versionen der installierten Abhängigkeiten festhält und so konsistente und deterministische Builds über verschiedene Umgebungen hinweg gewährleistet. Diese Sperrdatei wird automatisch aktualisiert, wenn Sie Abhängigkeiten hinzufügen oder ändern, und ist für die Gewährleistung einer stabilen und reproduzierbaren Entwicklungsumgebung von entscheidender Bedeutung.
Erstellen und verpacken Sie Ihre Projekte ganz einfach mit einem einzigen Befehl.
poetry construct
Veröffentlichen Sie ganz einfach Ihr eigenes Projekt auf PyPI.
poetry publish
Einen Einblick in die Abhängigkeiten des Projekts haben.
poetry present --tree
oder
poetry present --latest
— — —
Warum verwendete das Python-Projekt Poetry?
Weil es Code in lyrische Zeilen und Abhängigkeiten in harmonische Reime verwandeln wollte!
🙂🙂🙂