Neues Projekt erstellen
Um ein komplett neues Pythonprojekt zu erstellen,
tippen wir einmal uv init <name> in die Konsole ein.
Für <name> kannst du hier,
wie auch immer du dein Projekt nennen möchtest,
eingeben.
Ich werde mal ein Projekt namens "uv-demo" erstellen. In der cmd-Konsole oder in einem Terminal gebe diesen Befehl hier ein:
uv init uv-demo
Dies erstellt mir einen neuen Ordner mit dem Namen "uv-demo". Mit folgender Dateien- und Ordnerstruktur:
uv-demo/
├── main.py
├── pyproject.toml
├── .python-version
└── README.md
Mit cd uv-demo kommst du dann in den Ordner rein,
um dann von dort aus weitere Befehle ausführen zu können,
aber dazu kommen wir gleich noch,
jetzt erstmal gehen wir mal Schritt für Schritt über die ganzen Dateien in unserem Projekt.
pyproject.toml
Die pyproject.toml hat alle Metadaten von unserem Projekt in sich.
Die automatisch generierte pyproject.toml sieht bei mir so aus:
uv-demo/pyproject.toml:
[project]
name = "uv-demo"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = []
Das meißte sollte schon vom Namen her offensichtlich sein,
obwohl diese auch erst wichtig werden,
wenn wir unser Programm irgendwo veröffentlichen wollen.
Mit name definieren den Namen unserers Projektes,
mit version welche Version unser Programm ist,
bei description kommt eine Beschreibung unserers Programmes.
requires-python sagt genau aus welche Version an Python unser Programm braucht.
Mit uv können wir auch eine bestimmte Projekt-eigene Version von Python installieren.
Dies macht arbeiten in einem Team mit verschiedenen Computern und verschiedenen Betriebsystem extrem angenehm.
In dependencies müssen wir gar nichts editieren,
weil hier kommen alle Packages rein,
die wir mit uv für unseren Projekt installieren.
Wie das geht zeige ich dir gleich noch,
aber selber editieren müssen wir hier rein goar nix.
.python-version
In dieser Datei steht nur eine Sache und zwar die Version an Python, die wir speziell für unser Projekt installiert haben wollen.
uv-demo/.python-version:
3.12
Wie ich schon gesagt habe, kann uv für uns auch eine Python Version installieren. Wenn wir zum Beispiel Python für unser Projekt updaten wollen, dann editieren wir einfach diese Datei und fertig! Mega simpel oder nicht!
README.md
In README.md können wir eine Einleitung oder Vorstellung unseres Projektes reinschreiben.
Das ist für uns jetzt komplett uninteressant,
aber wenn wir unser Projekt veröffentlichen wollten,
dann können wir in diese Datei eine Vorstellung reinschreiben und erklären
wie man unseres Projekt installiert und oder benutzt.
main.py
Die wohl wichtigste Datei in unserem ganzen Projekt.
Hier schreiben wir unser Code.
Sozusagen ist das unser "Entrypoint" zu unseren Programm.
Mit uv run main.py starten wir unser Programm.
Wenn ich das einmal hier mache:
uv run main.py
Dann bekomme ich diesen Output hier:
Hello from uv-demo!
Das liegt daran, dass uv schon ein bisschen Code für uns generiert hat. Schauen wir uns den mal auch an!
uv-demo/main.py:
def main():
print("Hello from uv-demo!")
if __name__ == "__main__":
main()
Das main ist die Funktion, die automatisch ausgeführt wird,
wenn wir unser Pythonskript ausführen.
Warum?
Naja wegen der vorletzten Zeile if __name__ == "__main__".
Wenn wir unser Programm ausführen mit uv run main.py oder einfach nur python main.py,
dann ist __name__ gleich "__main__", also wird main() gecallt.