Hello World
Lass un mal in diesem Projekt weiter arbeiten.
Eine super Idee wäre es, wenn unser Projekt "Hello World" in der Konsole ausgeben könnte.
Das hört sich doch mega spannend an, oder nicht?
Ein paar Hürden gibt es aber jetzt schon. Zum Beispiel, wo fangen wir an?
Wir könnten in der src/poetry_demo/__init__.py
unser Code reinschreiben,
aber dies ist eigentlich nicht, wie es poetry vorgesehen hatte,
denn in der src/poetry_demo/__init__.py
wird Code reingeschrieben,
zum initialisiern unseres Programmes.
Nun könnten wir dort auch stink normalen Code reinschreiben,
aber dies wäre nicht so idiomatisch, oder findest du nicht?
Besser wäre es, wenn wir eine neue Datei erstellen,
von der unser Programm aus starten kann.
Dafür erstelle ich eine main.py
Datei in src/poetry_demo/
.
Innerhalb der main.py
kommt dann dieser Code hier:
src/poetry_demo/main.py
:
def main():
print("Hello World")
if __name__ == "__main__":
main()
Du fragst dich jetzt bestimmt warum definiere ich eine main
Funktion?
Wir können poetry genau sagen,
welche Funktion wir von einer Datei ausgeführt haben wollen.
Die main
Funktion der main.py
Datei wird unser Entrypoint unseres Projektes sein
und in der Zukunft zuständig dafür sein,
unser Pythonprojekt zu starten,
aber jetzt wird es erstmal nur "Hello World" in die Konsole ausgeben.
Unser Programm können wir jezt mit diesem Befehl ausführen:
poetry run python src/poetry_demo/main.py
Hello World
Mit poetry run python
führen wir exakt die Version an Python aus,
die in der pyproject.toml
definiert ist.
Weil diese von den Python,
das auf unserem System installiert ist,
abweichen könnte,
ist es besser poetry run python
zu verwenden,
anstelle nur python
.
Aber oh mein Gott ist der Befehl lang und kompliziert. Das geht auch noch besser und einfacher und zwar mit einem "Script".
Poetry erlaubt es uns eigene Scripts zu erstellen,
dafür editieren wir einmal kurz unsere pyproject.toml
Datei.
Am Ende der Datei fügen wir diese zwei Zeilen hinzu:
pyproject.toml
:
[tool.poetry.scripts]
start = "poetry_demo.main:main"
Dies bedeutet, dass wir einen neuen "run" Befehl erstellt haben,
der vom src/poetry_demo
dessen main.py
Datei dessen main
Funktion ausführt.
Sprich mit poetry run start
wird jetzt unsere main Funktion ausgeführt:
Wir haben einen neuen Befehl namens „run“ angelegt. Dieser startet direkt die Funktion main in der Datei src/poetry_demo/main.py. Wenn du jetzt
poetry run start
eingibst, wird also unsere main-Funktion ausgeführt.
Falls bei deinem neuen "run" Befehl einen Error bekommst,
dann musst du wahrscheinlich einmal vorher poetry install
eingeben.
poetry install
Und danach sollte poetry run start
ohne Probleme ausgeführt werden
und du solltest diesen Output in der Konsole sehen:
Hello World
Et voilà! Somti ist jetzt unser Projekt richtig aufgesetzt!
Du fragst dich jetzt vielleicht:
"Warum so kompliziert?
Man kann doch einfach weiterhin seinen Code in einer x-beliebigen Datei reinschreiben
und mit python
ausführen; ohne diesen ganzen Schnickschnack...
Wozu braucht man poetry denn?"
In den nächsten Kapitel werden wir 3rd-Party Packages aus dem Internet runterladen müssen und poetry macht uns all das tausend-mal einfacher.
Zum Beispiel werde ich dir einmal schnell zeigen, wie man das Package "nltk", mit Hilfe poetry, installiert und wieder deinstalliert.