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 herumschlagen 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. Mit Rust erstellt, ist uv 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 'requestsAutomatische Metadatengenerierung
Dadurch werden Metadaten zur Skriptdatei hinzugefügt:
# /// script # dependencies = [ # "requestsUnd das ist es! Sie können diese Datei mit jemand anderem teilen und dieser kann einfach Folgendes ausführen:
$ uv run app.pyUnd voilà – keine externe Einrichtung erforderlich! Alles dank der Geschwindigkeit und Effizienz von UV.
2. Erstellen und Verwalten virtueller Umgebungen
Erste Schritte mit virtuellen Umgebungen
Standardmäßig erfordert UV 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 venvDadurch 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.9Die Umgebung ist einsatzbereit und UV erkennt sie automatisch für alle Ihre Befehle, wie das Installieren von Paketen oder das Ausführen von Skripts.
Wann sollte uv add vs. uv pip install verwendet werden?
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 Ihr 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
Die Auswahl des richtigen Befehls stellt sicher, 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 bietet ein Pip-ähnliches Erlebnis, aber mit turbogeladener Leistung. Die Installation von Paketen ist unkompliziert:
$ uv pip install flask
Müssen Sie optionale Abhängigkeiten hinzufügen oder direkt von einem GitHub-Repo installieren? Kein Problem:
$ uv pip install 'torch>=1.10.0' "git https://github.com/astral-sh/ruff"
Kein Warten mehr auf langsame Installationen – uv erledigt die Arbeit schnell und effektiv.
Egal, ob Sie Code linten oder Dateien formatieren, uv macht die Installation von CLI-Tools einfach:
Global:
$ uv tool install ruff
Lokal innerhalb eines Projekts:
$ uv add ruff
Kurzfristige Befehle ausführen, ohne sie global zu installieren:
$ uvx black my_code.py
Verabschieden Sie sich von Paketkonflikten und Umweltverschmutzung – führen Sie Ihre Tools einfach aus, wann und wo immer Sie sie benötigen.
Wenn Sie Ihre Python-Entwicklung vorantreiben möchten und sich nicht mehr mit mehreren Tools herumschlagen wollen, ist uv Ihre Antwort. Mit seinen optimierten Befehlen, reproduzierbaren Umgebungen und der effizienten Paketverwaltung macht uv die Python-Entwicklung zu einem Vergnügen und nicht zu einer lästigen Pflicht.
Bereit für eine Spritztour mit UV-Licht? ? Starten Sie noch heute und erleben Sie eine bessere Möglichkeit, Ihre Python-Projekte zu verwalten.
Seien Sie gespannt auf Teil 2, in dem wir uns eingehender mit erweiterten Funktionen wie der Nutzung von pyproject.toml, dem Umgang mit globalen vs. lokalen Toolinstallationen und der Frage befassen, wie UV Ihr bester Freund bei der Verwaltung komplexer Umgebungen sein kann.
Viel Spaß beim Codieren! ?✨
Weitere Details und eine vollständige Dokumentation finden Sie in der UV-Dokumentation.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3