Petty Petty Joy # 3: Poesie


Abhängigkeitsmanagement? Schon wieder Shaw?


Das Python-Ökosystem hat eine Reihe von Möglichkeiten zum Verwalten von Abhängigkeiten in Projekten hervorgebracht.
Im Moment können Sie zwischen setup.py, require.txt, setup.cfg, MANIFEST.in und Pipfile wählen.
Aber der französische Pythonist Sébastien Eustace hat nicht alle diese Methoden ausgearbeitet, und er hat sein eigenes Ding für die Verwaltung von Tierpackungen geschrieben - Poesie . Warum hat er das getan? Um all diese setup.py, require.txt, setup.cfg, MANIFEST.in und Pipfile durch etwas Einfaches und Unkompliziertes zu ersetzen. Fügen Sie außerdem etwas Nützliches hinzu.


Bild


Mit Poetry können Sie eine Reihe von Dingen gleichzeitig steuern - die Sprachversion in Ihrem Projekt, Abhängigkeiten, steckbare Pfade, Test- / Entwicklungsskripte, Builds und Builds. Alle erforderlichen Pfade, Abhängigkeiten und Skripte werden in einer speziellen Datei pyproject.toml beschrieben .


Poesie funktioniert am besten in Verbindung mit pyenv , einem System zur Verwaltung mehrerer Versionen von Python und virtuellen Umgebungen.


Fühle


Krempeln Sie die Ärmel hoch und sehen Sie, wie Poesie im Geschäft funktioniert. Das erste, was zu tun ist, ist Pyenv zu setzen und den offiziellen Anweisungen auf den Docks zu folgen.


#  pyenv,        $ pyenv update #     Python     $ pyenv install -l #    ,       $ pyenv install 3.7.3 #      zlib,    # CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install 3.7.3 #          $ pyenv local 3.7.3 #  poetry $ pip3 install poetry #    $ poetry init # Poetry         pyproject.toml,       #     .       ,      . $ poetry add flask celery # Poetry       pyproject.toml #     ,     PIP (,       ),     $ poetry add my-package --path ../my-package/ #       $ poetry show #        Python $ poetry run python #      Python   ,     flask  celery,    . 

Die Umgebung ist installiert und konfiguriert, Abhängigkeiten werden mit einem Finger gesteuert, Sie können den Code schneiden!


Sie haben höchstwahrscheinlich in Ihrem Projekt Befehle zum Starten des Servers, der Mitarbeiter, der Bereitstellungsskripts und des Testens. Sie können sie in pyproject.toml ablegen und auch mit einem Finger steuern.


Zur Datei hinzufügen


 my-script = "my_module:main" 

und jetzt können Sie das Skript mit dem Befehl ausführen


 poetry run my-script 

Warum ist das alles?


Wenn Sie ein Dutzend Minuten damit verbringen, diese Sache zu meistern, sparen Sie Zeit und Nerven beim Verwalten von Versionen der Sprache und der Pakete, beim Verfolgen von Abhängigkeiten und beim Festlegen von Pfaden. Dies wird insbesondere denjenigen helfen, die mindestens einmal versucht haben, ihre Entwicklungen in pip zu veröffentlichen :)


  • Ein Abhängigkeitsauflöser, der immer eine Lösung für Paketversionskonflikte finden kann (falls überhaupt vorhanden)
  • Erstellen Sie automatisch Sandboxen zum Ausführen von Projekten.
  • Ein nettes Konsolendienstprogramm, das das Starten, Testen und Bereitstellen von Projekten erheblich vereinfacht.

Poetry ist mit anderen Controllern für virtuelle Umgebungen befreundet, sodass die Integration des neuen Ansatzes in alte Projekte sehr einfach ist.

Source: https://habr.com/ru/post/de455335/


All Articles