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.
OS:macOS Catalina v10.15.4 poetry:v1.0.8
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
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.
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.
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
Entfernen Sie die Bibliothek aus pyproject.toml
und auch aus der virtuellen Umgebung.
poetry remove <Paketnamen>
poetry run <Befehl>
#Zum Beispiel, wenn Sie jupyterlab starten möchten, das Sie mit aktiviertem Paket in Poesie einfügen.
poetry run jupyter lab
#Beim Aktualisieren nur einiger Pakete
poetry update <Paketnamen>
#Beim Aktualisieren aller Pakete
poetry update
pyproject.toml
beschriebenen PaketsWird verwendet, wenn Sie Pakete aus pyproject.toml
installieren möchten, die von anderen gleichzeitig erstellt wurden
poetry install
poetry self update
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
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
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