Sind Sie es leid, mit mehreren Tools wie Pip, Virtualenv, Conda, Poetry und Pyenv zu jonglieren, nur um Ihre Python-Umgebungen und Abhängigkeiten unter Kontrolle zu halten? Du bist nicht allein! Das Verwalten von Python-Projekten kann Kopfschmerzen bereiten, insbesondere angesichts der vielen verschiedenen Paketmanager und Tools, mit denen Sie sich auseinandersetzen müssen.
Geben Sie uv ein – die Universal Virtualenv. Betrachten Sie es als einen One-Stop-Shop-Paketmanager, der Ihren Python-Entwicklungsprozess rationalisieren und beschleunigen soll.
uv lässt sich von Rye, einem weiteren modernen Verpackungsmanager, inspirieren, um die besten Funktionen von Pip, Pip-Tools, Pyenv, Virtualenv und Poetry zu vereinen. UV wurde mit Rust entwickelt und ist nicht nur schnell, sondern auch äußerst effizient und vereinfacht alles von der Verwaltung von Abhängigkeiten bis zur Erstellung virtueller Umgebungen.
Kurz gesagt geht es bei UV um Konsolidierung. Warum zwischen mehreren Tools wechseln, wenn Sie ein einheitliches Erlebnis haben können? Ziel ist es, die Reibung bei der Python-Entwicklung zu beseitigen und Ihnen eine konsistentere und schnellere Möglichkeit zur Verwaltung Ihrer Projekte zu bieten. Und es ist auch noch rasend schnell! Das öffnet neue Türen, für dynamisches Management
Eine der aufregendsten Funktionen von uv ist die Möglichkeit, Abhängigkeiten direkt in Ihrem Python-Skript hinzuzufügen. Stellen Sie sich vor, Sie haben ein einfaches Skript wie dieses:
# app.py import requests from rich.pretty import pprint response = requests.get("https://peps.python.org/api/peps.json") data = response.json() pprint([(k, v["title"]) for k, v in data.items()][:10])
Das Ausführen dieses Skripts bedeutet normalerweise das Einrichten einer virtuellen Umgebung und das manuelle Installieren von Abhängigkeiten. Mit uv können Sie alle Ihre Abhängigkeiten direkt in das Skript einbetten, wodurch es eigenständig und gemeinsam nutzbar:
wird
$ uv add --script app.py 'requests<3' 'rich'
Dadurch werden Metadaten zur Skriptdatei hinzugefügt:
# /// script # dependencies = [ # "requests<3", # "rich", # ] # ///
Und das ist es! Sie können diese Datei mit jemand anderem teilen und dieser kann einfach Folgendes ausführen:
$ uv run app.py
Und voilà – keine externe Einrichtung erforderlich! Alles dank der Geschwindigkeit und Effizienz von UV.
UV erfordert standardmäßig die Installation von Paketen in virtuellen Umgebungen, um Ihr System sauber zu halten und Konflikte zwischen verschiedenen Projekten zu vermeiden. Das Erstellen einer virtuellen Umgebung mit UV ist einfach:
$ uv venv
Dadurch wird ein .venv-Verzeichnis erstellt, das die isolierte Umgebung enthält. Wenn Sie ein benutzerdefiniertes Verzeichnis oder eine Python-Version angeben möchten, können Sie Folgendes tun:
$ uv venv my_env --python 3.9
Die Umgebung ist einsatzbereit und UV erkennt sie automatisch für alle Ihre Befehle, wie das Installieren von Paketen oder das Ausführen von Skripten.
Verwenden Sie uv add: Wenn Sie Abhängigkeiten zur pyproject.toml-Datei Ihres Projekts hinzufügen möchten. Dies ist am besten geeignet, wenn Sie ein Projekt entwickeln und alle Abhängigkeiten im Auge behalten möchten, damit das Projekt leicht geteilt und reproduzierbar ist. Wir werden dies im nächsten Beitrag behandeln, bleiben Sie dran!
$ uv add fastapi
Dadurch wird Ihre pyproject.toml aktualisiert und die Version in uv.lock gesperrt.
Verwenden Sie uv pip install: Wenn Sie Pakete zur schnellen Verwendung installieren möchten, ohne die Projektdatei zu ändern, oder für globale Tools, bei denen Sie sie nicht in einer pyproject.toml nachverfolgen müssen. Stellen Sie sich UV-Pip als eine sofortige, einmalige Installation vor.
$ uv pip install requests
Durch die Auswahl des richtigen Befehls wird sichergestellt, dass Ihr Projekt ordnungsgemäß verwaltet und einfach geteilt oder bereitgestellt werden kann.
Das haben wir alle schon erlebt: Ihr Code funktioniert heute, stürzt aber morgen ab, weil ein Paket aktualisiert wird. Mit uv können Sie dies verhindern, indem Sie Paketversionen sperren, um Konsistenz und Reproduzierbarkeit sicherzustellen:
[tool.uv] exclude-newer = "2023-10-16T00:00:00Z"
Auf diese Weise bleibt Ihr Projekt stabil, auch wenn neue Versionen Ihrer Abhängigkeiten herauskommen. Perfekt für Langzeitprojekte, bei denen Sie sich keine Überraschungen leisten können!
Viele Entwickler müssen an mehreren Projekten arbeiten, die unterschiedliche Python-Versionen erfordern. uv macht das Wechseln der Versionen so einfach wie:
$ uv python install 3.8 3.9 3.10
Sobald die Versionen installiert sind, ist der Wechsel zwischen ihnen nahtlos:
$ uv run --python 3.10 app.py
Und wenn Sie eine bestimmte Version für ein Projekt sperren möchten:
$ uv python pin 3.9
Kein Jonglieren mehr mit Pyenv-Befehlen – uv übernimmt die ganze schwere Arbeit für Sie.
uv provides a pip-like experience but with turbocharged performance. Installing packages is straightforward:
$ uv pip install flask
Need to add optional dependencies or install directly from a GitHub repo? No sweat:
$ uv pip install 'torch>=1.10.0' "git+https://github.com/astral-sh/ruff"
No more waiting around for slow installations—uv gets the job done fast and effectively.
Whether you're linting code or formatting files, uv makes installing CLI tools easy:
Globally:
$ uv tool install ruff
Locally within a Project:
$ uv add ruff
Run Ephemeral Commands without Installing Globally:
$ uvx black my_code.py
Say goodbye to package conflicts and environment pollution—just run your tools whenever and wherever you need them.
If you're looking to supercharge your Python development and want to stop wrestling with multiple tools, uv is your answer. With its streamlined commands, reproducible environments, and efficient package management, uv makes Python development a pleasure rather than a chore.
Ready to take uv for a spin? ? Start today and experience a better way to manage your Python projects.
Stay tuned for Part 2, where we'll dive deeper into advanced features like leveraging pyproject.toml, handling global vs. local tool installations, and how uv can be your best friend when managing complex environments.
Happy coding! ?✨
For more details and full documentation, check out uv documentation.
Das obige ist der detaillierte Inhalt vonBeherrschen Sie das Python-Projektmanagement mit uv PartEs ist Zeit, Poesie hinter sich zu lassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!