uv – Neuer Manager für Python-Pakete, Projekte und Umgebungen

Die Vorteile von Python uv

Inhaltsverzeichnis

Python uv (ausgesprochen „you-vee“) ist ein modernes, leistungsfähiges Python-Paket- und Projektmanagement-Tool, das in Rust geschrieben wurde. Es wurde als direkter Ersatz für traditionelle Python-Paketverwaltungen wie pip, pip-tools, virtualenv, pipx und pyenv entwickelt, um Python-Entwicklungsarbeitflows zu vereinfachen und zu beschleunigen.

uv wird von Astral entwickelt, dem Team hinter dem beliebten Python-Linter Ruff, und ist darauf ausgelegt, häufige Probleme im Python-Ökosystem – wie langsame Installationen, Abhängigkeitskonflikte und komplexe Umgebungsverwaltung – durch die Nutzung der Leistungsfähigkeit von Rust und moderner Softwarearchitektur anzugehen.

uv python ultra-violet spa

Wichtige Funktionen von uv

  • Hervorragende Geschwindigkeit: uv ist deutlich schneller als traditionelle Tools – typischerweise 8–10-mal schneller als pip ohne Caching und mit einem warmen Cache bis zu 80–115-mal schneller.
  • Alles-in-einem-Tool: Kombiniert Paketinstallation, Abhängigkeitsauflösung, Verwaltung virtueller Umgebungen, Python-Versionsverwaltung, Projektgerüstung (Scaffolding) und Skriptausführung in einem einzigen Tool.
  • Kompatibilität: Bietet eine pip-kompatible Kommandozeilenschnittstelle, was die Einführung ohne steile Lernkurve erleichtert.
  • Robustes Abhängigkeitsmanagement: Stellt präzise Abhängigkeitsauflösung und Lockfile-Unterstützung für reproduzierbare Umgebungen bereit.
  • Automatische virtuelle Umgebungen: Erstellt und verwaltet virtuelle Umgebungen automatisch, was den manuellen Einrichtungsaufwand reduziert.
  • Plattformsübergreifende Unterstützung: Funktioniert auf macOS, Linux und Windows.
  • Standalone-Installation: Kann installiert werden, ohne dass Python oder Rust erforderlich sind, durch die Verwendung eines einfachen Installers oder curl.

uv vs poetry vs pdm vs pip performance comparison

Immer noch unsicher, warum man uv verwenden sollte?

  • Leistung: Reduziert die Zeit für die Paketinstallation und die Abhängigkeitsauflösung drastisch.
  • Einfachheit: Vereinigt mehrere Tools zu einem einzigen und strafft so die Projekteinrichtung und -verwaltung.
  • Zuverlässigkeit: Liefert konsistente, reproduzierbare Umgebungen mit klaren Fehlermeldungen und Konfliktlösung.
  • Moderne Standards: Unterstützt pyproject.toml für die Projektkonfiguration und richtet sich damit nach aktuellen Python-Paketierungsstandards.

Anwendungsbeispiele

Lassen Sie uns etwas Aufregendes ausprobieren!

  • Starten eines neuen Projekts:
uv init myproject
cd myproject
uv add requests
uv run python script.py

Dies erstellt einen Projektpfad, richtet eine virtuelle Umgebung ein, installiert Abhängigkeiten und führt Skripte in einer isolierten Umgebung aus.

  • Verwaltung von Skripten mit Inline-Abhängigkeiten:
uv add --script script.py requests
uv run script.py

uv kann Abhängigkeiten für Einzeldatei-Skripte verwalten, ohne separate Erforderlichkeitsdateien (requirements files).

Vergleich zu traditionellen Tools

Funktion uv pip/virtualenv Poetry
Geschwindigkeit Sehr schnell Langsam Moderat
Virtuelle Umgebungen Automatisch Manuell Automatisch
Abhängigkeitsauflösung Fortgeschritten Basis Fortgeschritten
Python-Versionsverwaltung Ja Nein (erfordert pyenv) Nein
Lockfile-Unterstützung Ja Nein (erfordert pip-tools) Ja
Skriptausführung Integriert Nein Begrenzt

Wie kann ich UV auf meinem System installieren und damit beginnen, es zu verwenden?

Um uv auf Ihrem System zu installieren und zu verwenden, befolgen Sie diese einfachen Schritte:

Installation

  1. Standalone-Installer (empfohlen)
    • Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh

Oder, wenn Sie wget bevorzugen:

wget -qO- https://astral.sh/uv/install.sh | sh
  • Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • Bestimmte Version: Sie können eine bestimmte Version anfordern, indem Sie sie in die URL aufnehmen, z. B. https://astral.sh/uv/0.7.15/install.sh.
  1. Alternative: Installation über pip (falls Python installiert ist)
pip install uv

Hinweis: Diese Methode wird für systemweiten Zugriff weniger empfohlen, es sei denn, Sie wissen, was Sie tun, da sie Ihre systemweite Python-Umgebung überladen kann.

  1. Installation über pipx (für isolierte, systemweite Installation)
pipx install uv

Diese Methode ist sauberer für globalen Zugriff, wenn Sie bereits pipx verwenden.

Erste Schritte

Um die Installation zu prüfen – Führen Sie aus:

uv

Sie sollten ein Hilfemenü sehen, das bestätigt, dass uv installiert und bereit ist.

Um eine virtuelle Umgebung zu erstellen und zu aktivieren

  • Venv erstellen:
uv venv test
  • Auf Linux/macOS aktivieren:
source test/bin/activate
  • Auf Windows aktivieren:
.\test\Scripts\activate

Jetzt können Sie uv pip install verwenden, um Pakete in dieser Umgebung zu installieren.

Neues Projekt initialisieren

uv init

Dies erstellt eine pyproject.toml und eine .gitignore für Ihr Projekt.

Abhängigkeiten hinzufügen

Paket hinzufügen:

uv add

Dies aktualisiert pyproject.toml und erzeugt/aktualisiert die Lockfile.

Abhängigkeiten synchronisieren

Alle Abhängigkeiten in Ihrer Umgebung installieren:

uv sync

Oder, die pip-kompatible Schnittstelle verwenden:

uv pip install

Dies stellt sicher, dass alle Abhängigkeiten gemäß Ihrer Lockfile installiert sind.

Skripte ausführen

Verwenden Sie:

uv run script.py

Dies verwaltet die Umgebung und Abhängigkeiten für Ihr Skript automatisch.

Shell-Integration (Optional)

Für einen reibungsloseren Workflow können Sie die Shell-Integration in Ihre .zshrc oder .bashrc hinzufügen, um automatisch eine Standard-virtuelle Umgebung zu aktivieren und pip als Alias für uv pip zu setzen.

Mit diesen Schritten ist uv installiert, und Sie sind bereit, Ihre Python-Projekte mit Geschwindigkeit und Leichtigkeit zu verwalten.

Installieren spezifischer Python-Versionen

Sie können uv verwenden, um spezifische Python-Versionen zu installieren und für Ihre Projekte zu verwalten.

  • Aktuelle stabile Python-Version installieren:
    uv python install
    
    Dieser Befehl lädt und installiert die neueste verfügbare stabile Python-Version herunter.
  • Bestimmte Version installieren:
    uv python install 3.12
    
    Dies installiert die neueste Patch-Release von Python 3.12 (z. B. 3.12.3).
  • Exakte Patch-Version installieren:
    uv python install 3.12.3
    
    Dies installiert exakt Python 3.12.3.
  • Mehrere Versionen installieren:
    uv python install 3.9 3.10 3.11
    
    Dies installiert Python 3.9, 3.10 und 3.11.
  • Version installieren, die einem Zwang entspricht:
    uv python install '>=3.8,=3.11"
    
    Dies ändert die Python-Versionsanforderung des Projekts.

Zusätzliche Hinweise

Automatische Downloads: Standardmäßig lädt uv erforderliche Python-Versionen automatisch herunter und installiert sie, wenn sie auf Ihrem System nicht gefunden werden.

System-Python: uv kann vorhandene Python-Installationen verwenden, falls vorhanden, oder Sie können erzwingen, dass es das System-Python mit dem --no-managed-python-Flag verwendet.

Aktualisierung: Sie können von uv verwaltete Python-Versionen auf die neueste Patch-Release aktualisieren mit:

uv python upgrade 3.12

Oder alle installierten Versionen aktualisieren:

uv python upgrade

Aktualisierungen über Minder-Versionen hinweg (z. B. von 3.12 auf 3.13) werden nicht unterstützt.

Zusammenfassend bietet uv flexible und leistungsstarke Tools zum Installieren, Verwalten und Verwenden spezifischer Python-Versionen in Ihren Projekten.

Wie entdeckt UV verfügbare Python-Interpreters auf verschiedenen Systemen

UV erkennt verfügbare Python-Interpreters auf verschiedenen Systemen, indem es eine Reihe gut definierter Orte prüft und jeden Kandidaten nach seinen Versionsmetadaten abfragt. So funktioniert es:

  • Verwaltete Python-Installationen:
    UV sucht zuerst im Verzeichnis, das durch die Umgebungsvariable UV_PYTHON_INSTALL_DIR angegeben wird, wo es seine eigenen verwalteten Python-Versionen speichert.
  • System-PATH:
    Auf macOS und Linux prüft UV nach ausführbaren Dateien namens python, python3 oder python3.x (wobei x eine Versionsnummer ist) in den Verzeichnissen, die im System-PATH aufgelistet sind. Auf Windows sucht es nach python.exe.
  • Windows-spezifische Orte:
    Auf Windows prüft UV auch das Windows-Register und Python-Interpreters im Microsoft Store unter Verwendung der Ausgabe von py --list-paths.
  • Virtuelle Umgebungen:
    Wenn eine virtuelle Umgebung aktiv oder angegeben ist, prüft UV den Interpreter in dieser Umgebung auf Kompatibilität, bevor er woanders sucht.
  • Abfrage der Metadaten:
    Jeder entdeckte ausführbare Datei wird nach seinen Versionsmetadaten abgefragt. Nur ausführbare Dateien, die der angeforderten Version (oder Versionsbeschränkung) entsprechen, werden berücksichtigt. Nicht ausführbare Dateien werden ignoriert.
  • Präferenz und Fallback:
    Standardmäßig bevorzugt UV systemweite Python-Installationen, aber Sie können dies mit Optionen anpassen, um verwaltete oder ausschließlich verwaltete/systemweite Versionen zu bevorzugen. Wenn kein geeigneter Interpreter gefunden wird, kann UV die erforderliche Version herunterladen und installieren.

Dieser robuste Erkennungsprozess stellt sicher, dass UV den richtigen Python-Interpreter zuverlässig über verschiedene Betriebssysteme und Umgebungen hinweg finden und verwenden kann.

Abonnieren

Neue Beiträge zu Systemen, Infrastruktur und KI-Engineering.