uv - Neues Python-Paket, -Projekt- und -Umgebungsmgmt

Gute Aspekte von Python uv

Inhaltsverzeichnis

Python uv (gesprochen „you-vee“) ist ein moderner, leistungsstarker Python-Paket- und Projekt-Manager, der in Rust geschrieben wurde. Er ist als direkter Ersatz für traditionelle Python-Paket-Verwaltungstools wie pip, pip-tools, virtualenv, pipx und pyenv konzipiert, um die Python-Entwicklungswerkzeuge zu vereinfachen und zu beschleunigen.

uv wird von Astral entwickelt, dem Team hinter dem beliebten Python-Linter Ruff, und ist so konzipiert, um häufige Probleme im Python-Ökosystem – wie langsame Installationen, Abhängigkeitskonflikte und komplexe Umgebungshandhabung – durch die Leistungsfähigkeit von Rust und moderne Softwarearchitektur zu adressieren.

uv python ultra-violet spa

Wichtige Funktionen von uv

  • Ausgezeichnete Geschwindigkeit: uv ist deutlich schneller als traditionelle Tools – typischerweise 8–10-mal schneller als pip ohne Cache und bis zu 80–115-mal schneller mit einem warmen Cache.
  • Einheitliches Tool: Kombiniert Paketinstallation, Abhängigkeitsauflösung, virtuelle Umgebungshandhabung, Python-Versionshandhabung, Projektvorlagen und Skriptausführung in einem einzigen Tool.
  • Kompatibilität: Bietet eine pip-kompatible Befehlszeilenschnittstelle, was die Adoption ohne steile Lernkurve erleichtert.
  • Robuste Abhängigkeitsverwaltung: Bietet präzise Abhängigkeitsauflösung und Lockfile-Unterstützung für reproduzierbare Umgebungen.
  • Automatische virtuelle Umgebungen: Erstellt und verwaltet virtuelle Umgebungen automatisch, was manuelle Einrichtung reduziert.
  • Plattformübergreifende Unterstützung: Funktioniert auf macOS, Linux und Windows.
  • Selbstständige Installation: Kann ohne Python oder Rust installiert werden, mit einem einfachen Installer oder curl.

uv vs poetry vs pdm vs pip performance comparison

Noch unsicher, warum uv verwenden?

  • Leistung: Reduziert dramatisch die Zeiten für Paketinstallation und Abhängigkeitsauflösung.
  • Einfachheit: Vereint mehrere Tools in eines, was die Projektsetup und -verwaltung vereinfacht.
  • Zuverlässigkeit: Liefert konsistente, reproduzierbare Umgebungen mit klaren Fehlermeldungen und Konfliktlösung.
  • Moderne Standards: Unterstützt pyproject.toml für Projektkonfiguration, was mit aktuellen Python-Paketstandards übereinstimmt.

Beispielanwendungsfälle

Lassen Sie uns etwas Aufregendes versuchen!

  • Ein neues Projekt starten:
uv init myproject
cd myproject
uv add requests
uv run python script.py

Dies erstellt ein Projektverzeichnis, setzt eine virtuelle Umgebung auf, installiert Abhängigkeiten und führt Skripte in einer isolierten Umgebung aus.

  • Skripte mit Inline-Abhängigkeiten verwalten:
uv add --script script.py requests
uv run script.py

uv kann Abhängigkeiten für Einzelskripte verwalten, ohne separate Requirements-Dateien.

Vergleich mit traditionellen Tools

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

Wie installiere und beginne ich mit UV auf meinem System

Um uv auf Ihrem System zu installieren und zu verwenden, folgen Sie diesen einfachen Schritten:

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"
  • Spezifische Version: Sie können eine spezifische Version anfordern, indem Sie sie in die URL einfügen, z. B. https://astral.sh/uv/0.7.15/install.sh.
  1. Alternative: Installieren über pip (wenn Python installiert ist)
pip install uv

Hinweis: Diese Methode wird nicht empfohlen, es sei denn, Sie wissen, was Sie tun, da sie Ihre System-Python-Umgebung möglicherweise verunreinigen kann.

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

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

Einstieg

Um 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:

  • Erstellen Sie eine venv:
uv venv test
  • Aktivieren Sie sie auf Linux/macOS:
source test/bin/activate
  • Aktivieren Sie sie auf Windows:
.\test\Scripts\activate

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

Ein neues Projekt initialisieren

uv init

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

Abhängigkeiten hinzufügen

Fügen Sie ein Paket hinzu:

uv add

Dies aktualisiert pyproject.toml und generiert/aktualisiert das Lockfile.

Abhängigkeiten synchronisieren

Installieren Sie alle Abhängigkeiten in Ihrer Umgebung:

uv sync

Oder verwenden Sie die pip-kompatible Schnittstelle:

uv pip install

Dies stellt sicher, dass alle Abhängigkeiten gemäß Ihrem Lockfile installiert werden.

Skripte ausführen

Verwenden Sie:

uv run script.py

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

Shell-Integration (Optional)

Für einen reibungsloseren Workflow können Sie Shell-Integration zu Ihrer .zshrc oder .bashrc hinzufügen, um eine Standardvirtuelle Umgebung automatisch zu aktivieren und pip zu uv pip zu aliasieren.

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

Installation spezifischer Python-Versionen

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

  • Installieren Sie die neueste stabile Python-Version:
    uv python install
    
    Dieser Befehl lädt die neueste stabile Python-Version herunter und installiert sie.
  • Installieren Sie eine spezifische Version:
    uv python install 3.12
    
    Dies installiert die neueste Patch-Release von Python 3.12 (z. B. 3.12.3).
  • Installieren Sie eine exakte Patch-Version:
    uv python install 3.12.3
    
    Dies installiert exakt Python 3.12.3.
  • Installieren Sie mehrere Versionen:
    uv python install 3.9 3.10 3.11
    
    Dies installiert Python 3.9, 3.10 und 3.11.
  • Installieren Sie eine Version, die einem Konstrukt entspricht:
    uv python install '>=3.8,=3.11"
    
    Dies ändert die Python-Version-Anforderung des Projekts.

Zusätzliche Hinweise

Automatische Downloads: Standardmäßig wird uv automatisch die erforderlichen Python-Versionen herunterladen und installieren, wenn sie auf Ihrem System nicht gefunden werden.

System-Python: uv kann vorhandene Python-Installationen verwenden, wenn vorhanden, oder Sie können es mit dem --no-managed-python-Flag zwingen, System-Python zu verwenden.

Aktualisieren: Sie können uv-gemanagte Python-Versionen auf die neueste Patch-Release aktualisieren mit:

uv python upgrade 3.12

Oder alle installierten Versionen aktualisieren:

uv python upgrade

Das Aktualisieren über Minder-Versionen (z. B. 3.12 auf 3.13) wird nicht unterstützt.

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

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

UV ermittelt verfügbare Python-Interpreters auf verschiedenen Systemen, indem es eine Reihe gut definierter Orte überprüft und jede Kandidaten-Interpret für ihre Versionsmetadaten abfragt. So funktioniert es:

  • Gemanagte Python-Installationen:
    UV sucht zunächst in dem Verzeichnis, das durch die Umgebungsvariable UV_PYTHON_INSTALL_DIR angegeben wird, wo es seine eigenen gemanagten Python-Versionen speichert.
  • System PATH:
    Auf macOS und Linux überprüft UV, ob Ausführbare Dateien mit Namen python, python3 oder python3.x (wobei x eine Versionsnummer ist) in Verzeichnissen enthalten sind, die im System PATH aufgelistet sind. Auf Windows sucht es nach python.exe.
  • Windows-spezifische Orte:
    Auf Windows überprüft UV auch den Windows-Registrierungsspeicher und Python-Interpreters aus dem Microsoft Store mit der Ausgabe von py --list-paths.
  • Virtuelle Umgebungen:
    Wenn eine virtuelle Umgebung aktiv oder angegeben ist, überprüft UV den Interpreter in dieser Umgebung auf Kompatibilität, bevor es anderswo sucht.
  • Metadatenabfrage:
    Jede entdeckte Ausführbare Datei wird für ihre Versionsmetadaten abgefragt. Nur Ausführbare Dateien, die der geforderten Version (oder Versionseinschränkung) entsprechen, werden berücksichtigt. Nicht ausführbare Dateien werden ignoriert.
  • Vorrang und Fallback:
    Standardmäßig bevorzugt UV System-Python-Installationen, aber Sie können dies mit Optionen anpassen, um gemanagte oder nur gemanagte/system-Installationen zu bevorzugen. Wenn keine passende Interpreter gefunden wird, kann UV die erforderliche Version herunterladen und installieren.

Dieser robuste Entdeckungsprozess stellt sicher, dass UV zuverlässig den richtigen Python-Interpreter auf verschiedenen Betriebssystemen und Umgebungen finden und verwenden kann.