Ein extrem schneller Python-Paket- und Projektmanager, geschrieben in Rust.
Trio-Abhängigkeiten mit einem Warm-Cache installieren.
pip
, pip-tools
, pipx
, poetry
, pyenv
, twine
, virtualenv
und mehr.pip
.curl
oder pip
.uv wird von Astral, den Erfindern von Ruff, unterstützt.
Installieren Sie UV mit unseren eigenständigen Installationsprogrammen:
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows.
powershell -ExecutionPolicy ByPass -c " irm https://astral.sh/uv/install.ps1 | iex "
Oder von PyPI:
# With pip.
pip install uv
# Or pipx.
pipx install uv
Bei Installation über das eigenständige Installationsprogramm kann sich uv auf die neueste Version aktualisieren:
uv self update
Einzelheiten und alternative Installationsmethoden finden Sie in der Installationsdokumentation.
Die Dokumentation von uv ist unter docs.astral.sh/uv verfügbar.
Darüber hinaus kann die Referenzdokumentation zur Befehlszeile mit uv help
angezeigt werden.
UV verwaltet Projektabhängigkeiten und Umgebungen mit Unterstützung für Sperrdateien, Arbeitsbereiche und mehr, ähnlich wie rye
oder poetry
:
$ uv init example
Initialized project `example` at `/home/user/example`
$ cd example
$ uv add ruff
Creating virtual environment at: .venv
Resolved 2 packages in 170ms
Built example @ file:///home/user/example
Prepared 2 packages in 627ms
Installed 2 packages in 1ms
+ example==0.1.0 (from file:///home/user/example)
+ ruff==0.5.4
$ uv run ruff check
All checks passed!
Sehen Sie sich die Projektdokumentation an, um loszulegen.
uv unterstützt auch das Erstellen und Veröffentlichen von Projekten, auch wenn diese nicht mit uv verwaltet werden. Weitere Informationen finden Sie im Veröffentlichungsleitfaden.
uv führt und installiert Befehlszeilentools, die von Python-Paketen bereitgestellt werden, ähnlich wie pipx
.
Führen Sie ein Tool in einer kurzlebigen Umgebung mit uvx
aus (ein Alias für uv tool run
):
$ uvx pycowsay ' hello world! '
Resolved 1 package in 167ms
Installed 1 package in 9ms
+ pycowsay==0.0.0.2
"""
------------
< hello world! >
------------
^__^
(oo)_______
(__) )/
||----w |
|| ||
Installieren Sie ein Tool mit uv tool install
:
$ uv tool install ruff
Resolved 1 package in 6ms
Installed 1 package in 2ms
+ ruff==0.5.4
Installed 1 executable: ruff
$ ruff --version
ruff 0.5.4
Weitere Informationen finden Sie in der Dokumentation zu den Tools.
uv installiert Python und ermöglicht einen schnellen Wechsel zwischen Versionen.
Installieren Sie mehrere Python-Versionen:
$ uv python install 3.10 3.11 3.12
Searching for Python versions matching: Python 3.10
Searching for Python versions matching: Python 3.11
Searching for Python versions matching: Python 3.12
Installed 3 versions in 3.42s
+ cpython-3.10.14-macos-aarch64-none
+ cpython-3.11.9-macos-aarch64-none
+ cpython-3.12.4-macos-aarch64-none
Laden Sie bei Bedarf Python-Versionen herunter:
$ uv venv --python 3.12.0
Using Python 3.12.0
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
$ uv run --python [email protected] -- python --version
Python 3.8.16 (a9dbdca6fc3286b0addd2240f11d97d8e8de187a, Dec 29 2022, 11:45:30)
[PyPy 7.3.11 with GCC Apple LLVM 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>>
Verwenden Sie eine bestimmte Python-Version im aktuellen Verzeichnis:
$ uv python pin [email protected]
Pinned `.python-version` to `[email protected]`
Weitere Informationen finden Sie in der Python-Installationsdokumentation.
uv verwaltet Abhängigkeiten und Umgebungen für Einzeldateiskripte.
Erstellen Sie ein neues Skript und fügen Sie Inline-Metadaten hinzu, die seine Abhängigkeiten deklarieren:
$ echo ' import requests; print(requests.get("https://astral.sh")) ' > example.py
$ uv add --script example.py requests
Updated `example.py`
Führen Sie dann das Skript in einer isolierten virtuellen Umgebung aus:
$ uv run example.py
Reading inline script metadata from: example.py
Installed 5 packages in 12ms
Weitere Informationen finden Sie in der Skriptdokumentation.
uv bietet einen direkten Ersatz für gängige pip
, pip-tools
und virtualenv
Befehle.
uv erweitert seine Schnittstellen um erweiterte Funktionen, wie z. B. Abhängigkeitsversionsüberschreibungen, plattformunabhängige Auflösungen, reproduzierbare Auflösungen, alternative Auflösungsstrategien und mehr.
Migrieren Sie zu UV, ohne Ihre bestehenden Arbeitsabläufe zu ändern – und erleben Sie eine 10- bis 100-fache Beschleunigung – mit der uv pip
-Schnittstelle.
Anforderungen in einer plattformunabhängigen Anforderungsdatei zusammenstellen:
$ uv pip compile docs/requirements.in
--universal
--output-file docs/requirements.txt
Resolved 43 packages in 12ms
Erstellen Sie eine virtuelle Umgebung:
$ uv venv
Using Python 3.12.3
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
Installieren Sie die gesperrten Anforderungen:
$ uv pip sync docs/requirements.txt
Resolved 43 packages in 11ms
Installed 43 packages in 208ms
+ babel==2.15.0
+ black==24.4.2
+ certifi==2024.7.4
...
Weitere Informationen finden Sie in der Dokumentation zur Pip-Schnittstelle.
Siehe das Plattform-Supportdokument von uv.
Siehe das Versionierungsrichtliniendokument von uv.
Es liegt uns am Herzen, Mitwirkende aller Erfahrungsstufen zu unterstützen, und wir würden uns freuen, wenn Sie sich an dem Projekt beteiligen. Sehen Sie sich den Beitragsleitfaden an, um loszulegen.
Der Abhängigkeitslöser von uv verwendet unter der Haube PubGrub. Wir danken den PubGrub-Betreuern, insbesondere Jacob Finkelman, für ihre Unterstützung.
Die Git-Implementierung von uv basiert auf Cargo.
Einige der Optimierungen von uv sind von der großartigen Arbeit inspiriert, die wir in pnpm, Orogene und Bun gesehen haben. Wir haben auch viel von Posy von Nathaniel J. Smith gelernt und dessen Trampolin für die Windows-Unterstützung angepasst.
uv ist unter einer dieser beiden Lizenzen lizenziert
nach Ihrer Wahl.
Sofern Sie nicht ausdrücklich etwas anderes angeben, unterliegt jeder von Ihnen absichtlich zur Aufnahme in uv eingereichte Beitrag gemäß der Definition in der Apache-2.0-Lizenz einer Doppellizenz wie oben, ohne zusätzliche Bedingungen oder Konditionen.