Heim > Backend-Entwicklung > Python-Tutorial > Beherrschen Sie das Python-Projektmanagement mit uv PartEs ist Zeit, Poesie hinter sich zu lassen

Beherrschen Sie das Python-Projektmanagement mit uv PartEs ist Zeit, Poesie hinter sich zu lassen

Barbara Streisand
Freigeben: 2024-09-30 06:16:02
Original
1001 Leute haben es durchsucht

Mastering Python Project Management with uv PartIt

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.


Eine kleine Hintergrundgeschichte

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.

Das Ziel von UV

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


1. Portabler Code mit Inline-Skript-Metadaten

Reden wir über Abhängigkeiten

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])
Nach dem Login kopieren

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'
Nach dem Login kopieren

Automatische Metadatengenerierung

Dadurch werden Metadaten zur Skriptdatei hinzugefügt:

# /// script
# dependencies = [
#   "requests<3",
#   "rich",
# ]
# ///
Nach dem Login kopieren

Und das ist es! Sie können diese Datei mit jemand anderem teilen und dieser kann einfach Folgendes ausführen:

$ uv run app.py
Nach dem Login kopieren

Und voilà – keine externe Einrichtung erforderlich! Alles dank der Geschwindigkeit und Effizienz von UV.


2. Erstellen und Verwalten virtueller Umgebungen

Erste Schritte mit virtuellen Umgebungen

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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.

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
    
    Nach dem Login kopieren

    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
    
    Nach dem Login kopieren

Durch die Auswahl des richtigen Befehls wird sichergestellt, dass Ihr Projekt ordnungsgemäß verwaltet und einfach geteilt oder bereitgestellt werden kann.


3. Sperren Sie Versionen zur Reproduzierbarkeit

Ist Ihr Code jemals aufgrund von Updates kaputt gegangen?

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"
Nach dem Login kopieren

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!


4. Python-Versionen verwalten

Unterschiedliche Projekte, unterschiedliche Python-Versionen? Kein Problem!

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
Nach dem Login kopieren

Sobald die Versionen installiert sind, ist der Wechsel zwischen ihnen nahtlos:

$ uv run --python 3.10 app.py
Nach dem Login kopieren

Und wenn Sie eine bestimmte Version für ein Projekt sperren möchten:

$ uv python pin 3.9
Nach dem Login kopieren

Kein Jonglieren mehr mit Pyenv-Befehlen – uv übernimmt die ganze schwere Arbeit für Sie.


5. Say Goodbye to pip Hassles

It's pip—but Faster and Better

uv provides a pip-like experience but with turbocharged performance. Installing packages is straightforward:

$ uv pip install flask
Nach dem Login kopieren

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"
Nach dem Login kopieren

No more waiting around for slow installations—uv gets the job done fast and effectively.


6. Manage CLI Tools Globally and Easily

From black to ruff, Get Your Tools Hassle-Free

Whether you're linting code or formatting files, uv makes installing CLI tools easy:

  • Globally:

    $ uv tool install ruff
    
    Nach dem Login kopieren
  • Locally within a Project:

    $ uv add ruff
    
    Nach dem Login kopieren
  • Run Ephemeral Commands without Installing Globally:

    $ uvx black my_code.py
    
    Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage