uv Einführungstutorial -- Python-Paket- und Umgebungsverwaltungstool

In der Python-Entwicklung sind Paketverwaltung und Umgebungsisolierung Probleme, denen jeder Entwickler begegnet. Ob es die Langsamkeit von pip, die Umständlichkeit von virtualenv oder die Aufgeblähtheit von conda ist,uvalles lässt Entwickler auf eine effizientere Lösung hoffen.

Was ist uv?

uv ist ein Python-Paketmanager und Umgebungsmanager, entwickelt von Astral in Rust. Sein Hauptziel ist es, eine Leistung bereitzustellen, die 10-100 Mal schneller ist als bei bestehenden Tools, während eine einfache und intuitive Benutzererfahrung erhalten bleibt.

uv kann Tools wie pip, virtualenv, pip-tools und pyenv ersetzen und bietet einen One-Stop-Service für Abhängigkeitsverwaltung, Erstellung virtueller Umgebungen und Python-Versionsverwaltung.

Vorteile von uv

  • Extrem schnell: Da es in Rust geschrieben ist, übertrifft die Leistung von uv die von pip und anderen Paketverwaltungswerkzeugen bei Weitem, und die Geschwindigkeit der Installation von Abhängigkeiten kann um das 10- bis 100-Fache verbessert werden.
  • Integrierte Funktionalität: Es vereint Abhängigkeitsauflösung, Paketinstallation, Umgebungsverwaltung und Python-Versionsverwaltung in einem, ohne dass mehrere Tools installiert und erlernt werden müssen.
  • Deterministische Builds: uv erzeugt eineuv.lockDatei, die sicherstellt, dass in jeder Umgebung genau dieselben Abhängigkeitsversionen installiert werden können, wodurch das Problem "läuft auf meinem Rechner" vermieden wird.
  • Kompatibilität mit bestehenden Tools: uv kannrequirements.txtundpyproject.toml, und kann pip nahtlos in bestehenden Workflows ersetzen.

Installation von uv

Installation unter macOS

Es wird empfohlen, die Installation über Homebrew durchzuführen:

brew install uv

Oder verwenden Sie das offizielle Installationsskript:

curl -LsSf https://astral.sh/uv/install.sh | sh

Installation unter Linux

curl -LsSf https://astral.sh/uv/install.sh | sh

Installation unter Windows

Verwendung von Winget:

winget install uv

Oder verwenden Sie das offizielle Installationsskript (PowerShell):

irm https://astral.sh/uv/install.ps1 | iex

Überprüfen Sie nach der Installation, ob sie erfolgreich war:

uv --version

Die Ausgabe ähnelt der folgenden und zeigt an, dass die Installation erfolgreich war:

uv 0.8.14 (Homebrew 2025-08-28)

1. Verwalten von Python-Versionen

uv verfügt über integrierte Funktionen zur Verwaltung von Python-Versionen, sodass keine zusätzlichen Tools wie pyenv installiert werden müssen.

Verfügbare Python-Versionen anzeigen:

uv python list

Das Ausgabeergebnis ist ähnlich wie das folgende:

cpython-3.14.0rc2-macos-aarch64-none                 <download available>
cpython-3.13.7-macos-aarch64-none                    <download available>
cpython-3.12.11-macos-aarch64-none                   <download available>
cpython-3.11.13-macos-aarch64-none                   <download available>
cpython-3.10.18-macos-aarch64-none                   <download available>
cpython-3.9.6-macos-aarch64-none                     /usr/bin/python3
pypy-3.11.13-macos-aarch64-none                      <download available>

Eine bestimmte Version von Python installieren:

# 安装最新的 Python 3.12
uv python install 3.12

# 安装特定版本
uv python install 3.11.6

# 安装 PyPy 版本
uv python install pypy3.10

Die globale Standard-Python-Version festlegen:

uv python default 3.12

Die Python-Version für das aktuelle Projekt festlegen (dadurch wird eine.python-versionDatei erstellt):

uv python pin 3.12

Nach Ausführung dieses Befehls wird eine .python-version-Datei im aktuellen Projektverzeichnis erzeugt. Beim Öffnen zeigt sie den Inhalt der Versionsnummer an:

3.12

2. Verwalten virtueller Umgebungen

Virtuelle Umgebung erstellen:

# 在当前目录创建名为 .venv 的虚拟环境(使用系统默认 Python)
uv venv

# 使用指定 Python 版本创建虚拟环境
uv venv --python 3.12

Virtuelle Umgebung aktivieren:

# macOS / Linux
source .venv/bin/activate

# Windows(PowerShell)
.venv\Scripts\activate

Virtuelle Umgebung verlassen:

deactivate

In der täglichen Entwicklung können Sieuv runum Skripte direkt auszuführen, ohne die virtuelle Umgebung manuell zu aktivieren.


3. Paketverwaltung (pip-Kompatibilitätsmodus)

uv bietet eine Kommandozeilenschnittstelle, die vollständig mit pip kompatibel ist und pip-Befehle in bestehenden Workflows direkt ersetzen kann:

Pakete installieren:

# 安装最新版本
uv pip install requests

# 安装特定版本
uv pip install requests==2.31.0

# 从 requirements.txt 批量安装
uv pip install -r requirements.txt

Pakete aktualisieren:

uv pip install --upgrade requests

Pakete deinstallieren:

uv pip uninstall requests

Installierte Pakete anzeigen:

uv pip list

Die Abhängigkeiten der aktuellen Umgebung nach requirements.txt exportieren:

uv pip freeze > requirements.txt

4. Projektverwaltung (Empfohlene Vorgehensweise)

uv unterstützt einenpyproject.toml-zentrierter moderner Projektmanagement-Ansatz, der empfehlenswerter ist als der pip-Modus, besonders geeignet für Teamzusammenarbeit und Multi-Umgebungs-Deployment.

Initialisieren eines Projekts

uv init my_project
cd my_project

Dadurch wird die folgende grundlegende Projektstruktur erstellt:

my_project/
├── pyproject.toml    # 项目配置和依赖声明
├── .python-version   # 固定 Python 版本
├── README.md
└── main.py

Hinzufügen und Entfernen von Abhängigkeiten

Im Projektmodus wird empfohlen,uv addunduv removezur Verwaltung von Abhängigkeiten zu verwenden; sie werden automatisch aktualisiertpyproject.tomlunduv.lock:

# 添加生产依赖
uv add requests

# 添加指定版本的依赖
uv add "requests>=2.31.0"

# 添加开发依赖(只在开发环境使用,如测试框架)
uv add --dev pytest ruff

# 移除依赖
uv remove requests

Installieren aller Projektabhängigkeiten (uv sync)

Nach dem Klonen des Projekts oder dem Aktualisierenpyproject.toml, führen Sie den folgenden Befehl aus, um alle Abhängigkeiten mit einem Klick zu installieren:

uv sync

uv sync-Erklärung:Ähnlich wiepip install -r requirements.txt, wird es, basierend aufpyproject.tomlunduv.lockalle Abhängigkeiten installieren und dabei sicherstellen, dass die Umgebung genau dieselbe ist wie die anderer Entwickler. Wenn die Installation langsam ist, können Sie inpyproject.tomleine inländische Mirror-Quelle festlegen:

[tool.uv]
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"

Generieren/Aktualisieren von Lock-Dateien

uv lock

Dieser Befehl analysiertpyproject.tomls Abhängigkeiten und generiert (oder aktualisiert) dieuv.lockDatei.uv.lockEs sollte in das Versionskontroll-Repository eingecheckt werden, um sicherzustellen, dass alle Teammitglieder genau dieselben Abhängigkeitsversionen verwenden.


5. Skripte ausführen (uv run)

uv runist ein sehr praktischer Befehl in uv, mit dem du, ohne die virtuelle Umgebung manuell zu aktivieren,direkt Skripte oder Befehle ausführen kannst. uv findet und verwendet automatisch die richtige Umgebung:

# 直接运行 Python 脚本
uv run main.py

# 运行项目中的测试
uv run pytest

# 运行任意命令(在虚拟环境的上下文中执行)
uv run python -c "import requests; print(requests.__version__)"

Verwendunguv runhat im Vergleich zum manuellen Aktivieren der Umgebung diese Vorteile: Du verwendest nicht versehentlich die falsche Python-Version, noch vergisst du, die Umgebung zu aktivieren, sodass Pakete nicht gefunden werden. Es eignet sich besonders für den Einsatz in CI/CD und bei der Skriptautomatisierung.


Migration zu uv

Wenn du andere Tools verwendest, kannst du auf folgende Weise zu uv migrieren:

Migration von pip + virtualenv:

# 创建并激活虚拟环境
uv venv
source .venv/bin/activate

# 安装原有依赖
uv pip install -r requirements.txt

Migration von pip-tools:

# 编译依赖(替代 pip-compile)
uv pip compile requirements.in -o requirements.txt

# 同步环境(替代 pip-sync)
uv pip sync requirements.txt

Migration von poetry oder pdm:

# 直接使用现有的 pyproject.toml
uv sync
Andere Erweiterungen