[2020/06 neueste Version] Grundlegende Verwendung von Poesie, einem Abhängigkeitsmanagement-Tool für Python

Einführung

Hier ist eine sehr grundlegende Verwendung der Poesie ab 2020/06. Informationen zum Unterschied zwischen Gedichten und anderen Abhängigkeitswerkzeugen und zu deren detaillierterer Verwendung finden Sie in den Artikeln und offiziellen Dokumenten, die von anderen verfasst wurden.

Betriebsüberprüfungsumgebung

OS:macOS Catalina v10.15.4 poetry:v1.0.8

Installation von Poesie

Installation

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

Grundeinstellung

Wenn Sie den folgenden Befehl eingeben, wird die von Poetry erstellte virtuelle Umgebung (Ordner .venv) direkt unter dem Projekt erstellt, das Pakete mit Poetry verwaltet.


poetry config virtualenvs.in-project true

Der Grund, warum dies erforderlich ist, besteht darin, dass bei Verwendung von vscode, wenn diese Einstellung nicht vorgenommen wird, der Pfad der virtuellen Umgebung zu vscode settings.json hinzugefügt und Schritte ausgeführt werden müssen, damit vscode die virtuelle Umgebung erkennt. Wenn Sie diese Einstellung jedoch zuerst festlegen, können Sie den Fehler sparen.

Poesie in das Projekt einführen

Einführung

Wenn Sie den folgenden Befehl eingeben, wird direkt darunter "pyproject.toml" erstellt, das die Paketliste verwaltet.


poetry init

Sie werden interaktiv nach dem Namen einiger Projekte, Autoren usw. gefragt. Bitte antworten Sie entsprechend. Derzeit ist es in Ordnung, wiederholt die Eingabetaste zu drücken. Wenn Sie ein Projekt starten, können Sie "Poesie neu" verwenden, aber dieser Befehl erstellt ein Verzeichnis und sogar README. Ich denke, dass Sie die Verzeichnisstruktur oft selbst erstellen möchten, damit Sie "Poesie darin" verwenden können.

Paket hinzufügen

Installieren Sie es in der virtuellen Umgebung, während Sie die Informationen der Bibliothek schreiben, die in pyproject.toml verwendet werden sollen, das von poetry init erstellt wurde.

#Wenn Sie vorerst nur die neueste benötigen
poetry add <Paketnamen>

#Version kann angegeben werden
poetry add "pendulum>=2.0.5"

#Hol es dir von git
poetry add git+https://github.com/sdispater/pendulum.git

Paket entfernen

Entfernen Sie die Bibliothek aus pyproject.toml und auch aus der virtuellen Umgebung.

poetry remove <Paketnamen>

Führen Sie Befehle in einer virtuellen Umgebung aus


poetry run <Befehl>
#Zum Beispiel, wenn Sie jupyterlab starten möchten, das Sie mit aktiviertem Paket in Poesie einfügen.
poetry run jupyter lab

Paketaktualisierung

#Beim Aktualisieren nur einiger Pakete
poetry update <Paketnamen>

#Beim Aktualisieren aller Pakete
poetry update

Bei der Installation des in pyproject.toml beschriebenen Pakets

Wird verwendet, wenn Sie Pakete aus pyproject.toml installieren möchten, die von anderen gleichzeitig erstellt wurden

poetry install

Aktualisierung der Poesie selbst


poetry self update

wichtiger Punkt

Angabe des Paketnamens

Wenn der unter "Poetry Init" angegebene Paketname mit dem Paketnamen übereinstimmt, den Sie mit "Poetry Add" installieren möchten, kann der folgende Fehler auftreten.

pyproject.toml


[tool.poetry]
name = "kedro"


❯ poetry add kedro
Using version ^0.16.1 for kedro

Updating dependencies
Resolving dependencies... (0.0s)

[AssertionError]

Ändern Sie es in diesem Fall in etwas anderes, z. B. "name =" kedro_practice ", und Sie können es normal installieren. Referenzproblem: https://github.com/python-poetry/poetry/issues/1295

Angeben der Python-Version

Wenn Sie beim Ausführen von "Poetry Init" keine besonderen Einstellungen vornehmen, wird die von Poetry erwartete Version von Python in "pyproject.toml" wie folgt beschrieben.


[tool.poetry.dependencies]
python = "^3.8"

Was ^ 3.8 bedeutet, ist ** 3.8 <= Python-Version <4.0 **. Es handelt sich um eine Versionsspezifikation, die die maximale Version annimmt, bei der sich der numerische Wert für die Hauptversion ganz links nicht ändert. (Weitere Informationen finden Sie unter Offizielle Dokumentation.) Bei der Installation eines Pakets mit "Poetry Add" usw. beurteilt Poetry, ob das Installationspaket mit der in "pyproject.toml" festgelegten Python-Version verwendet werden kann, jedoch mit ** der zu beurteilenden Python Die Version wird alle möglichen Versionen sein. ** Mit anderen Worten, im obigen Beispiel werden alle Versionen bewertet, die "3.8 <= Python-Version <4.0" erfüllen, dh ** v3.8 und v3.9. ** ** ** Zum Beispiel unterstützt das Paket kedro "3.6", "3.7", "3.8" und unterstützt ab 2020/06/07 nicht "3.9".

Wenn Sie versuchen, "Poesie" diese Pakete mit "python =" ^ 3.8 "" im Feld "[tool.poetry.dependencies]" von "pyproject.toml" hinzuzufügen, wird die folgende Fehlermeldung angezeigt: ..


[SolverProblemError]
The current project's Python requirement (^3.8) is not compatible with some of the required packages Python requirement:
  - kedro requires Python >=3.6, <3.9

Because no versions of kedro match >0.16.1,<0.17.0
 and kedro (0.16.1) requires Python >=3.6, <3.9, kedro is forbidden.
So, because kedro-test depends on kedro (^0.16.1), version solving failed.

Du bist in Version 3.8! Warum nicht? !! Sie werden am Ende die Zeit töten.

Als Lösung müssen Sie "pyproject.toml" wie folgt schreiben, damit die Version von Python nur v3.8 ist.

[tool.poetry.dependencies]
python = "^3.8,<3.9"
#Oder
python = "=3.8"

Weitere Informationen finden Sie in der Ausgabe auf dem Github der Poesie. https://github.com/python-poetry/poetry/issues/1413 https://github.com/python-poetry/poetry/issues/2444

schließlich

Es wird in diesem Artikel nicht erwähnt, aber es fühlt sich gut an, es in Kombination mit Pyenv zu verwenden. Es ist viel bequemer als Pip, also versuchen Sie es bitte.

Recommended Posts

[2020/06 neueste Version] Grundlegende Verwendung von Poesie, einem Abhängigkeitsmanagement-Tool für Python
Grundlegende Verwendung von Python-F-String
[Einführung in Python] Grundlegende Verwendung von Lambda-Ausdrücken
Grundlegende Verwendung von Flask-Classy
Grundlegende Verwendung von Jinja2
Verwendung von Python-Einheimischen ()
Grundkenntnisse in Python
[Einführung in Python] Grundlegende Verwendung der Bibliothek matplotlib
[Python] Richtige Verwendung der Karte
Stellen Sie die neueste Version von Python in Linux (Debian) von Chromebook
Super grundlegende Verwendung von Pytest
Grundlegende Verwendung der PySimple-Benutzeroberfläche
Upgrade von Python Anaconda
Überprüfen Sie die OpenSSL-Version von Python 2.6
Zusammenfassung der grundlegenden Verwendung von Pandas
Beispiel für die Verwendung von Python Pickle
[Python] Richtige Verwendung von Join
Memorandum des Python-Paketverwaltungstools ez_setup
[Python] Grundlegendes Muster und Verwendung der if-Anweisung (Vergleichsoperator und Boolescher Operator)
pyenv-change die Python-Version von virtualenv
Ideone> Python-Version: 3.5 (Stand 29. August 2017)
Persönliche Zusammenfassung des Python Package Management Tools
Grundlegende Grammatik des Python3-Systems (Wörterbuch)
[Python] Richtige Verwendung der if-Anweisung
Grundlegendes Studium von OpenCV mit Python
Informationen zur virtuellen Umgebung von Python Version 3.7
Installieren des Python-Paketverwaltungstools pip (Windows)
Grundlegende Verwendung von Btrfs in Arch Linux
[Python] Probieren Sie pydash der Python-Version von lodash aus
Grundlegende Grammatik der Python3-Reihe (Liste, Tapple)
Nicht logische Operatorverwendung von oder in Python
Python-Grundkurs (Ende 15)
Grundlegende Grammatik des Python3-Systems (inklusive Notation)