uv - Neues Python-Paket, -Projekt- und -Umgebungsmgmt
Gute Aspekte von Python uv
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.
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
.
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
- 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
.
- 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.
- 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:
Dieser Befehl lädt die neueste stabile Python-Version herunter und installiert sie.uv python install
- Installieren Sie eine spezifische Version:
Dies installiert die neueste Patch-Release von Python 3.12 (z. B. 3.12.3).uv python install 3.12
- Installieren Sie eine exakte Patch-Version:
Dies installiert exakt Python 3.12.3.uv python install 3.12.3
- Installieren Sie mehrere Versionen:
Dies installiert Python 3.9, 3.10 und 3.11.uv python install 3.9 3.10 3.11
- Installieren Sie eine Version, die einem Konstrukt entspricht:
Dies ändert die Python-Version-Anforderung des Projekts.uv python install '>=3.8,=3.11"
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 UmgebungsvariableUV_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 Namenpython
,python3
oderpython3.x
(wobeix
eine Versionsnummer ist) in Verzeichnissen enthalten sind, die im SystemPATH
aufgelistet sind. Auf Windows sucht es nachpython.exe
. - Windows-spezifische Orte:
Auf Windows überprüft UV auch den Windows-Registrierungsspeicher und Python-Interpreters aus dem Microsoft Store mit der Ausgabe vonpy --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.