AI Personal Learning
und praktische Anleitung
豆包Marscode1

gemeinsame uv-Befehle

Python An Instrumenten für das Paket- und Umweltmanagement hat es Eco nie gemangelt, vom klassischen pipundvirtualenv bis zu pip-toolsundcondaund dann die Modernisierung der PoetryundPDM Und so weiter. Jedes Tool hat sein Fachgebiet, aber das macht die Toolchain eines Entwicklers oft fragmentiert und komplex.

Nun, von Astral Unternehmen (bekannt) Python Linter Ruff (der Schöpfer der uv Das Crossing hat neue Möglichkeiten eröffnet. Dieses Produkt verwendet Rust in dieser Sprache geschriebene Werkzeuge, strebt eine Schnell, einheitlich und entwicklerfreundlich Python Paket- und Projektmanager. Ihr Ziel ist klar: die Nutzung von Rust ökologisch verträglich Cargo Die erfolgreiche Erfahrung des Unternehmens bietet eine Lösung aus einer Hand.uv Es ist nicht nur schnell, sondern integriert auch Umgebungsverwaltung, Paketinstallation, Auflösung von Abhängigkeiten, Projektmanagement und vieles mehr.

Warum UV?

Im Vergleich zu bestehenden Toolsuv Sie bietet eine modernere und effizientere Alternative zu ihren wichtigsten Highlights:

  1. Signifikante Geschwindigkeitsverbesserung: Basierend auf Rust der Optimierung der Kompilierzeit und der effizienten gleichzeitigen Verarbeitung.uv Bei gängigen Operationen wie der Auflösung von Abhängigkeiten und der Paketinstallation ist es schneller als herkömmliche Werkzeuge wie das pip vielleicht Poetryoft um Größenordnungen schneller. Der eingebaute effiziente globale Zwischenspeichermechanismus sorgt dafür, dass sich wiederholende Vorgänge fast sofort ausgeführt werden können. Dahinter steckt das Rust Sprachmerkmale (z. B. furchtlose Gleichzeitigkeit durch Speichersicherheit) und hochwertige zugrunde liegende Bibliotheken (z. B. die TokioundReqwest) Kredite.
  2. Vollständige funktionale Integration::uv Es ist als "Schweizer Taschenmesser" für Entwickler gedacht und deckt alles ab, von der Erstellung und Verwaltung virtueller Umgebungen bis hin zum Installieren und Sperren von Abhängigkeiten (native Unterstützung). pyproject.tomlkompatibel requirements.txt), zur Ausführung von Skripten, zur Verwaltung globaler Tools und sogar zur Installation spezifischer Python Version des gesamten Entwicklungsprozesses.
  3. Modernes Projektmanagement: Native Unterstützung pyproject.toml (PEP 517/518/621-Standard), der die moderne Python Das de facto Standardprofil des Projekts.uv Fähigkeit, Abhängigkeitsgruppierungen (z. B. Entwicklungsabhängigkeiten) klar zu handhaben und plattformübergreifend zu erstellen uv.lock Gesperrte Datei. Diese Sperrdatei zeichnet die spezifischen Versionen und Quellen aller direkten und indirekten Abhängigkeiten genau auf und stellt sicher, dass eine vollständig konsistente Umgebung auf jedem Rechner und zu jeder Zeit neu erstellt werden kann, um einen wirklich deterministischen Build zu gewährleisten.
  4. Gute Kompatibilität::uv Bietet einen Link zum pip Hochgradig kompatible Befehlsschnittstelle (uv pip ...) und kann verstehen requirements.txt Dateiformat, das die Migration bestehender Projekte auf das uv Das Verfahren ist relativ reibungslos.
  5. Aktive Entwicklung und die Zukunft:: Von Astral Das Team pflegt aktiv und führt schnelle Iterationen unter Verwendung der MIT Open-Source-Lizenz. Großes Interesse der Gemeinschaft, großes Entwicklungspotenzial und eine vielversprechende Zukunft.

ausnutzen uvwird erwartet, dass die Entwickler ähnliche Erfahrungen machen werden. Node.js ( npm / yarn / pnpm ) oder Rust ( Cargo ) als fließende und einheitliche Arbeitsabläufe für das Abhängigkeitsmanagement.

Einbau von UV

Montage uv Sehr einfach. Offiziell wird empfohlen, das mitgelieferte Installationsskript zu verwenden, da es nicht von der bestehenden Python Umwelt. Natürlich, durch pip oder System Package Manager sind ebenfalls eine gute Option.

  • Empfohlene Methode (plattformübergreifendes Scripting)::
    # macOS / Linux (bash, zsh, etc.)
    curl -LsSf https://astral.sh/uv/install.sh | sh
    # Windows (PowerShell)
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    

    zur Kenntnis nehmen: Das offizielle Skript setzt standardmäßig die uv Installation an einem bestimmten Ort im Benutzerverzeichnis (z. B. Linux / macOS (in Form eines Nominalausdrucks) ~/.uv/bin vielleicht Windows (in Form eines Nominalausdrucks) %LOCALAPPDATA%\uv\bin), die sich normalerweise auf der Systemdiskette befindet (z. B. C: (Scheibe).

  • Pip verwenden (erfordert eine vorhandene Python-Umgebung)::
    pip install uv
    # 或推荐使用 pipx 进行隔离安装
    # pipx install uv
    

    Wenn Ihr Python Umwelt- oder pipx Die Umgebung selbst befindet sich nicht auf der Systemdiskette, und durch diese Art der Installation wird die uv Normalerweise folgt sie auch ihrer Position. Sie können dies einstellen, indem Sie die Option PIPX_HOME Zu kontrollierende Umgebungsvariablen pipx Der Installationspfad des

  • Verwendung des Systempaketmanagers (Beispiel)::
    # macOS (Homebrew)
    brew install uv
    # Windows (Scoop)
    # 可以先将 Scoop 本身安装到非系统盘,然后用它安装 uv
    scoop install uv
    # Arch Linux
    pacman -S uv
    

    Wenn, wie im Fall von Scoop Ein solcher Paketmanager wird selbst auf einem systemfremden Datenträger konfiguriert, dann werden die von ihm installierten Anwendungen (einschließlich der uv) werden in der Regel ebenfalls auf demselben Laufwerk installiert.

  • Verwendung von Cargo (erfordert eine Rust-Umgebung)::
    cargo install uv --locked --git https://github.com/astral-sh/uv
    

    uv wird in den Cargo (in Form eines Nominalausdrucks) bin Katalog. Dies kann durch die Einstellung des Parameters CARGO_HOME Die Umgebungsvariable legt die gesamte .cargo Verzeichnis (das die heruntergeladenen crates und kompilierte Produkte) auf Nicht-System-Datenträger migriert.

Nachdem die Installation abgeschlossen ist, führen Sie uv --version vielleicht uv help um zu überprüfen, ob die Installation erfolgreich war.

Konfigurieren des Speicherorts für UV-Daten (Erweitert)

Standardmäßig wird dieuv Es zwischenspeichert, lädt die Python Version als auch über die uv tool install Die installierten globalen Tools werden standardmäßig im Benutzerverzeichnis gespeichert (normalerweise auf dem Systemlaufwerk). Wenn Sie sie auf einem anderen Laufwerk speichern möchten (z. B. auf dem D: Diskette), um Platz auf der Systemdiskette zu sparen oder um die SSD Write, die durch Setzen des ParametersUmgebungsvariableum sie zu verwirklichen.


Hier sind ein paar wichtige Umgebungsvariablen:

  • UV_CACHE_DIR: Kontrolle uv Speicherort des Cache-Verzeichnisses. Der Cache enthält heruntergeladene Paketdateien, gebaute wheel usw., die mehr Platz beanspruchen können.
  • UV_PYTHON_INSTALL_DIR:: Kontrolle durch uv python install heruntergeladen und verwaltet Python Der Ort, an dem der Interpreter installiert werden soll.
  • UV_TOOL_INSTALL_DIR:: Kontrolle durch uv tool install Installiert global Python Lagerorte für Werkzeuge und ihre isolierten Umgebungen.

Wie man Umgebungsvariablen setzt (Beispiel):

Angenommen, das Ziel ist es, alle uv Die Daten werden in der D:\uvdata Katalog.

  • Windows (PowerShell - temporäre Einstellung, nur für die aktuelle Sitzung gültig):
    $env:UV_CACHE_DIR = "D:\uvdata\cache"
    $env:UV_PYTHON_INSTALL_DIR = "D:\uvdata\python"
    $env:UV_TOOL_INSTALL_DIR = "D:\uvdata\tools"
    # 之后在此会话中运行 uv 命令,数据将写入新位置
    uv pip install requests
    
  • Windows (Systemumgebungsvariablen - permanente Einstellungen):
    1. existieren Windows Suchen Sie in der Suchleiste nach "Umgebungsvariablen".
    2. Klicken Sie auf "Systemumgebungsvariablen bearbeiten".
    3. Klicken Sie im Dialogfeld "Systemeigenschaften" auf die Schaltfläche "Umgebungsvariablen...". Schaltfläche.
    4. Klicken Sie im Bereich "Benutzervariablen" oder "Systemvariablen" (Benutzervariablen werden empfohlen, sofern sie nicht für alle Benutzer benötigt werden) auf "Neu ..." .".
    5. Geben Sie den Variablennamen ein (z. B. UV_CACHE_DIR) und variable Werte (wie D:\uvdata\cache).
    6. Wiederholen Sie diesen Vorgang für die beiden anderen Variablen.
    7. Klicken Sie auf OK, um alle Dialoge zu schließen.
    8. Krux:: ErforderlichWiedereröffnung PowerShell oder Eingabeaufforderungsfenster, damit die neue Umgebungsvariable wirksam wird.
  • Linux / macOS (bash/zsh - temporäre Einstellungen):
    export UV_CACHE_DIR="/path/to/non_system_drive/uvdata/cache"
    export UV_PYTHON_INSTALL_DIR="/path/to/non_system_drive/uvdata/python"
    export UV_TOOL_INSTALL_DIR="/path/to/non_system_drive/uvdata/tools"
    # 之后在此会话中运行 uv 命令
    uv pip install requests
    
  • Linux / macOS (permanente Einrichtung):
    topologisch export in Ihre Shell-Konfigurationsdatei einfügen (z. B. ~/.bashrc~/.zshrc~/.profile), und führen Sie dann die source ~/.your_config_file oder starten Sie das Terminal neu, damit die Konfiguration wirksam wird.

Wichtige Hinweise:

  • Nachdem diese Umgebungsvariablen gesetzt wurden, wird dieuv Die angegebenen Pfade werden automatisch verwendet. Stellen Sie sicher, dass diese Verzeichnisse existieren und dass uv Sie haben Schreibzugriff.
  • Virtuelle Umgebung (.venv) Stellunguv venv Die Standardeinstellungen in IhremProjekt-Stammverzeichniserstellen. .venv Ordner. Infolgedessen wird derSolange sich Ihr Projekt selbst auf einem systemfremden Datenträger befindet (z. B. auf der D:\myproject), dann .venv Natürlich wird sie auch auf dieser Disc enthalten sein. In der Regel ist es nicht erforderlich, eine Liste von .venv Konfigurieren Sie die Pfade individuell, um die Systemdiskette zu vermeiden. Natürlich können Sie die Systemdiskette auch vermeiden, indem Sie uv venv /path/to/custom/env Geben Sie explizit an, wo die virtuelle Umgebung erstellt werden soll, aber dies dient eher der Anpassung des Umgebungspfads als der Lösung des Speicherproblems des Systems.

Wenn Sie diese Umgebungsvariablen richtig konfigurieren, können Sie die uv erzeugt und an einen Speicherort geleitet, an dem mehr Platz zur Verfügung steht oder der besser geeignet ist.

UV-Kernkonzepte

bei der Nutzung uv Bei der Verwaltung eines Projekts ist es wichtig, die folgenden Kernkonzepte zu verstehen:

  • pyproject.toml: Modern Python Standardprofil des Projekts (basierend auf PEP 517/518/621).uv Verwenden Sie es, um Projekt-Metadaten (Name, Version, Beschreibung usw.) zu definieren. Python Fassung (requires-python) und die Hauptabhängigkeiten des Projekts (dependencies) und optionale Abhängigkeitsgruppen (z. B. dev-dependencies). Sie ist die "einzige Quelle der Wahrheit" für die Projektkonfiguration.
  • uv.lock:: Von uv Eine gesperrte Datei, die automatisch erstellt und verwaltet wird. Sie zeichnet die spezifischen Versionsnummern und Quellcode-Hashes aller Abhängigkeiten des Projekts (einschließlich indirekter Abhängigkeiten) genau auf. Ihr Hauptwert besteht darin, sicherzustellen, dassReproduzierbarkeit der Umwelt: wann immer und wo immer sie auf demselben beruhen uv.lock Datei die Abhängigkeiten installiert, erhalten Sie genau die gleiche Paketkombination.Diese Datei sollte nicht manuell bearbeitet werden.
  • Virtuelle Umgebung (.venv)::uv Sehr empfehlenswert und vereinfacht die Verwendung von virtuellen Umgebungen. Es erstellt standardmäßig eine virtuelle Umgebung im Stammverzeichnis des Projekts mit dem Namen .venv von isolierten Umgebungen zur Unterbringung von Projektabhängigkeiten. Die meisten der uv Befehl (z.B. addsyncrun) werden automatisch erkannt, und die Operationen werden in dieser Umgebung durchgeführt, so dass die globale Python Verschmutzung der Umwelt.

Verwaltung von Python-Projekten mit UV

Im Folgenden wird anhand eines vollständigen Prozesses gezeigt, wie man uv zur Erstellung und Verwaltung einer Python Projekt.

Initialisieren Sie das Projekt (uv init)

ausnutzen uv init können Sie schnell die Grundstruktur eines neuen Projekts erstellen.

# 确保在期望的驱动器上操作,例如在 D: 盘
# D:
# mkdir my_uv_project
# cd my_uv_project
# 初始化名为 my_uv_project 的项目
uv init my_uv_project
cd my_uv_project

Nach der Umsetzung.uv wird in my_uv_project Verzeichnis erzeugt wird:

  • .git/ im Gesang antworten .gitignoreAutomatische Initialisierung Git Repository und bietet eine gemeinsame Python Sportereignis .gitignore Dokumentation.
  • .python-versionDokumentation von Projektvorschlägen oder Anträgen auf Python Version (z.B. 3.12).uv sich auf dieses Dokument beziehen, um die entsprechende Software auszuwählen oder zu installieren Python Dolmetscher.
  • pyproject.tomlDie zentrale Konfigurationsdatei für das Projekt, die den Projektnamen, die Version und die Beschreibung enthält,Python Version Anforderungen und leer dependencies Liste.
  • README.md: eine leere README Dokumentation.
  • src/my_uv_project/__init__.py: Eine grundlegende Quellcode-Struktur (bei Verwendung des src (Layout). Oder eine einfache hello.py Beispiel-Datei.
# pyproject.toml 示例内容 (可能略有不同)
[project]
name = "my-uv-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12" # 根据系统情况或指定版本生成
dependencies = []
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
# uv 可能还会添加 tool.uv 相关配置

Erstellen und synchronisieren Sie die Umgebung (uv venvuv sync)

Nachdem das Projekt initialisiert wurde, müssen Sie die virtuelle Umgebung erstellen und den Abhängigkeitsstatus synchronisieren (selbst wenn es sich um eine leere Abhängigkeit handelt, wird bei der ersten Synchronisierung die uv.lock).

  1. Erstellen Sie eine virtuelle Umgebung (uv venv)::
    auch wenn uv sync und andere Befehle erzeugen automatisch .venvSie können aber auch explizit erstellt werden:

    # 创建默认的 .venv 环境 (uv 会根据 .python-version 或系统查找合适的 Python)
    # 这个 .venv 会在当前项目目录下创建
    uv venv
    # 创建时指定 Python 版本
    uv venv --python 3.11
    # 指定自定义环境名称 (不常用,因为 uv 生态默认与 .venv 配合)
    uv venv my_custom_env
    

    Wenn eine manuelle Betriebsumgebung erforderlich ist (z. B. bei der Verwendung eines nicht uv verwaltetes Werkzeug), dann müssen Sie es aktivieren:

    # Linux/macOS
    source .venv/bin/activate
    # Windows (PowerShell)
    .venv\Scripts\Activate.ps1
    # Windows (CMD)
    .venv\Scripts\activate.bat
    

    Arbeit: Für die große Mehrheit der uv Befehl (addremovesyncrun usw.).Eine manuelle Aktivierung der Umgebung ist in der Regel nicht erforderlich.(math.) Gattunguv findet und verwendet automatisch die .venv.

  2. Synchronisierte Umgebung (uv sync)::
    Dies ist einer der wichtigsten Befehle, um sicherzustellen, dass der Zustand der virtuellen Umgebung mit dem Zustand der pyproject.toml(über uv.lock Dokumente) oder requirements.txt Die Datei ist genau konsistent. Das erste Mal, wenn sie ausgeführt wird, wird sie:

    • abrufen. pyproject.toml der Abhängigkeitsdefinition.
    • Führt die Auflösung von Abhängigkeiten durch.
    • Erzeugung von uv.lock Dokumentation.
    • existieren .venv (zunächst kann nur das Projekt selbst als bearbeitbares Paket verfügbar sein).
    # 在项目根目录运行
    uv sync
    

    Nach der Ausführung werden Sie sehen .venv Das Verzeichnis wird erstellt oder aktualisiert und ein uv.lock Dokumentation.

Verwaltung von Abhängigkeiten (uv adduv removeuv lock)

dies ist uv Die am häufigsten verwendeten Funktionen, die für die Verwendung empfohlen werden, basieren auf pyproject.toml des Arbeitsablaufs.

  • Eine Abhängigkeit hinzufügen (uv add):
    Fügen Sie das Paket zum pyproject.toml (in Form eines Nominalausdrucks) [project.dependencies] Abschnitt und installiert oder aktualisiert automatisch die .venv Umwelt. Zur gleichen Zeit uv.lock Sie wird auch aktualisiert werden.

    # 添加最新稳定版的 pandas
    uv add pandas
    # 添加 requests,并指定版本约束
    uv add "requests>=2.20,<3.0"
    # 添加开发依赖 (如测试框架 pytest),会写入 [tool.uv.dev-dependencies]
    uv add pytest --dev
    uv add ruff --dev
    # 从 Git 仓库添加依赖
    uv add git+https://github.com/psf/requests.git
    # 添加本地路径的包 (以可编辑模式安装)
    uv add -e ../my_local_library
    
  • Abhängigkeiten entfernen (uv remove):
    durch (eine Lücke) pyproject.toml entfernt das angegebene Paket aus dem .venv Umgebung, um es und nicht mehr benötigte nachgelagerte Abhängigkeiten zu deinstallieren.

    # 移除 pandas
    uv remove pandas
    # 移除开发依赖 pytest
    uv remove pytest --dev
    
  • Aktualisieren von Abhängigkeiten:
    • Aktualisieren Sie alle Abhängigkeiten zu pyproject.toml Die neueste Version, die durch die Einschränkungen in und regenerieren Sie die uv.lock::
      # 1. 更新 lock 文件
      uv lock --upgrade
      # 2. 应用 lock 文件更新到环境
      uv sync
      
    • Aktualisieren Sie nur bestimmte Pakete auf die neueste Version:
      # 方法一:指定包更新 lock 文件,然后同步
      uv lock --upgrade-package requests
      uv sync
      # 方法二:直接 'add' 最新版 (也会更新 lock 和环境)
      uv add requests@latest
      
  • manuelles Bearbeiten pyproject.toml Kaiserin:
    Wenn Sie direkt die pyproject.toml Abhängigkeitsliste in der Datei zu ändern, müssen Sie die folgenden beiden Schritte ausführen, damit die Änderungen wirksam werden:

    1. uv lock :: Basierend auf pyproject.toml Der neue Inhalt berechnet die Abhängigkeiten neu und aktualisiert die uv.lock Dokumentation.
    2. uv sync :: Wille uv.lock Der Zustand in der Datei wird mit der .venv Virtuelle Umgebungen.

Führen Sie den Code und die Befehle aus (uv run)

uv run sein uv Eine äußerst praktische Funktion. Sie ermöglicht es Ihnen, eine Datei in der uv Ausführung im Kontext einer verwalteten virtuellen Umgebung Python Skript oder einen beliebigen Befehl.Kein manuelles Aktivieren der Umgebung im Vorfeld erforderlich. Dies ist uv Dies ist eines der wichtigsten Merkmale eines optimierten Arbeitsablaufs, dessen Beherrschung sich lohnt.

Arbeitsprinzip:

Wenn Sie die uv run <command> [args...] Zeit:

  1. Automatische Erkennung der Umgebung::uv findet automatisch das aktuelle Verzeichnis und das übergeordnete Verzeichnis der Datei .venv Virtuelle Umgebungen.
  2. Ausführung der internen Konfigurationsumgebung:
    • in Bezug auf uv run python your_script.py einen solchen Auftrag.uv ruft direkt die .venv Verzeichnis des Python Dolmetscher (.venv/bin/python vielleicht .venv/Scripts/python.exe), um das Skript auszuführen.
    • in Bezug auf uv run pytest tests/ vielleicht uv run ruff format . einen solchen Auftrag.uv Sie müssenInnerhalb des untergeordneten Prozesses, der den Befehl ausführtDie Zwischenzeit wird sein .venv/bin (oder .venv/Scripts) wird dem System hinzugefügt PATH an den Anfang der Umgebungsvariablen. Auf diese Weise ist das Betriebssystem in der Lage, die in der virtuellen Umgebung installierten Befehlszeilentools zu finden und auszuführen, auch wenn Sie die Umgebung nicht aktivieren (z. B. das pytestruff).

Wie kann ich eine Python-Datei ausführen?

Um das Projekt auszuführen Python Datei (z.B. src/my_package/main.py oder das Stammverzeichnis des app.py), die empfohlen wird:

uv run python src/my_package/main.py
# 或者
uv run python app.py

Schneidkante:

  • Keine manuelle Aktivierung erforderlich: Erspart die Eingabe von source .venv/bin/activate vielleicht .venv\Scripts\Activate.ps1 Der Ärger über die
  • Garantie der ökologischen KonsistenzSicherstellen, dass Ihr Code und Ihre Tools immer in der richtigen virtuellen Umgebung für Ihre Projektkonfiguration ausgeführt werden.
  • Vereinfachung von CI/CD-SkriptenIn automatisierten Prozessen wie z.B. GitHub ActionsGitLab CI) können direkt in der uv run Führen Sie Aufgaben wie Testen, Erstellen und Bereitstellen durch, ohne sich mit komplexer Umgebungsaktivierungslogik befassen zu müssen.

mehr uv run typisches Beispiel:

# 运行安装在环境中的 pytest 测试
uv run pytest tests/
# 运行安装在环境中的 ruff 代码格式化
uv run ruff format .
# 运行任意系统命令,uv 会确保 .venv/bin 在 PATH 中
uv run alembic upgrade head
# 向脚本传递参数
uv run python your_script.py --input data.csv --output results.json

Wann muss ich noch manuell aktivieren?

Manuelle Aktivierung (source activate oder ähnliche Befehle) wurde stark reduziert. Wahrscheinlich hauptsächlich in der gleichen Shell-Sitzung, die Sie benötigen:

  • Häufiges interaktives Ausführen mehrerer Befehle, die von der virtuellen Umgebung abhängen (z. B. direktes Eingeben der python Gehen Sie zum Interpreter und dann zum pytestUnd wieder. ruff).
  • Verwenden Sie einige spezifische Umgebungsvariablen, die von den Einstellungen des Aktivierungsskripts abhängen (außer der PATH (außer) den nicht Python Werkzeuge.

Aber für die meisten alltäglichen Entwicklungsaufgaben ist dieuv run Das automatisierte Umweltmanagement ist bequemer und effizienter.

ausnutzen requirements.txt (Workflow-kompatibel)

auch wenn uv Empfohlen pyproject.tomlunterstützt aber auch vollständig die traditionelle requirements.txt Arbeitsabläufe, und bietet pip Kompatible Befehlsschnittstelle und schneller.

  • Abhängigkeiten installieren (uv pip install):
    # 安装单个包
    uv pip install flask
    # 从 requirements 文件安装
    uv pip install -r requirements.txt
    # 可以同时指定多个文件
    uv pip install -r requirements.txt -r requirements-dev.txt
    # 安装当前项目 (以可编辑模式)
    uv pip install -e .
    
  • Deinstallation von Abhängigkeiten (uv pip uninstall):
    uv pip uninstall flask
    # 从文件批量卸载
    uv pip uninstall -r requirements-to-remove.txt
    
  • Erzeugen Sie eine Liste von Abhängigkeiten (uv pip freeze):
    # 输出当前环境安装的所有包 (类似 pip freeze)
    uv pip freeze > requirements.lock.txt # 常用于生成锁定文件
    
  • Abhängigkeiten kompilieren (uv pip compile) (Empfohlen requirements Arbeitsablauf):
    Dieser Ansatz ist vergleichbar mit pip-tools. Sie erhalten eine requirements.in Datei (die nur direkte Abhängigkeiten enthält), und verwenden Sie dann die uv Erzeugen Sie die genaue Version der requirements.txt Sperren Sie die Datei.

    # requirements.in 内容示例:
    # flask
    # requests>=2.25
    # 生成 requirements.txt
    uv pip compile requirements.in -o requirements.txt
    # 为开发环境编译 (假设有 requirements-dev.in)
    # uv pip compile requirements-dev.in -o requirements-dev.txt
    
  • Synchronisierte Umgebung (uv pip sync):
    Basierend auf einem oder mehreren requirements.txt Der Inhalt der Datei wird genau mit der virtuellen Umgebung synchronisiert: fehlende Pakete werden installiert und überflüssige Pakete werden entfernt.

    # 同步主依赖和开发依赖
    uv pip sync requirements.txt requirements-dev.txt
    
  • Installierte Pakete anzeigen (uv pip listuv pip showuv pip tree):
    uv pip list          # 列出已安装的包和版本
    uv pip show flask    # 显示 flask 包的详细信息
    uv pip tree          # 以树状结构显示依赖关系
    

Verwalten von Python-Versionen (uv python)

uv Integrierter Download, Verwaltung und Auswahl Python Version des Merkmals, ähnlich wie bei der pyenv. (Denken Sie daran, dass dies auch über die UV_PYTHON_INSTALL_DIR Umgebungsvariablen konfigurieren diese Python (Einbaulage)

  • Verfügbare und installierte Versionen auflisten (uv python list):
    # 列出已安装和当前使用的版本
    uv python list
    # 显示所有可供下载的补丁版本
    # uv python list --all-versions
    # 只显示已安装的版本
    uv python list --only-installed
    
  • Installieren Sie die Python-Version (uv python install):
    # 安装最新的稳定版 (如果尚未安装)
    uv python install
    # 安装特定版本
    uv python install 3.11.5
    # 安装 3.10 系列的最新可用版
    uv python install 3.10
    

    uv sendet die heruntergeladenen Python Installieren Sie es in seinem verwalteten Verzeichnis (uv python dir Der Pfad kann unter folgenden Bedingungen eingesehen werden UV_PYTHON_INSTALL_DIR Auswirkungen).

  • Deinstallieren Sie die Python-Version (uv python uninstall):
    uv python uninstall 3.10.8
    # 卸载 3.11 系列所有已安装版本
    uv python uninstall 3.11
    
  • Festgelegte Projekt-Python-Version (uv python pin):
    Erstellen oder Aktualisieren im aktuellen Verzeichnis .python-version Datei, in der erklärt wird, dass das Projekt die Python Version.

    uv python pin 3.11
    

    jenseits von uv venvuv runuv sync und andere Befehle werden bevorzugt diese Version finden und verwenden.

  • Suchen Sie den Python-Interpreter (uv python find):
    # 查找匹配 3.12 的 Python 解释器路径
    uv python find 3.12
    

Verwalten Sie globale Werkzeuge (uv tool)

uv Es könnte so sein pipx Installieren Sie wie immer das globale Python CLI Tools und isolieren Sie jedes Tool in einer separaten Umgebung, um Abhängigkeitskonflikte zu vermeiden. (In ähnlicher Weise kann der Speicherort der Werkzeuge mit der Option UV_TOOL_INSTALL_DIR Konfiguration der Umgebungsvariablen)

  • Laufende Werkzeuge (Ad-hoc-Implementierung usw.) uv tool run vielleicht uvx):
    Lädt das Tool vorübergehend herunter (falls erforderlich) und führt es aus, ohne es nach der Ausführung zu behalten. Dies ist sehr praktisch für Werkzeuge, die nur einmal verwendet werden.uvx sein uv tool run Die abgekürzte Form.

    # 运行 ruff 检查当前目录,临时下载 ruff
    uv tool run ruff check .
    # 使用简写 uvx
    uvx ruff check .
    # 如果命令名 (http) 和包名 (httpie) 不同,使用 --from
    uvx --from httpie http https://example.com
    
  • Installation von globalen Werkzeugen (uv tool install):
    Installieren Sie das Tool und seine Abhängigkeiten in das Verzeichnis uv verwaltete Standalone-Umgebung und verknüpfen Sie die ausführbare Datei mit dem Benutzerpfad (dies kann einen Neustart des Terminals oder die manuelle Konfiguration des PATH (um sie direkt aufrufen zu können). Dies ist ähnlich wie der pipx install.

    uv tool install black
    uv tool install httpie
    

    Nach der Installation kann es theoretisch von überall aus ausgeführt werden black . vielleicht http https://example.com.

  • Installierte Werkzeuge auflisten (uv tool list):
    uv tool list
    
  • Upgrade-Werkzeug (uv tool upgrade):
    uv tool upgrade black
    # 升级所有已安装工具
    # uv tool upgrade --all
    
  • Deinstallationswerkzeuge (uv tool uninstall):
    uv tool uninstall black
    
  • Zeigen Sie das Installationsverzeichnis des Tools an (uv tool dir):
    zeigen uv Der Wurzelpfad, in dem globale Werkzeuge und ihre Umgebungen gespeichert werden (abhängig von der UV_TOOL_INSTALL_DIR Auswirkungen).

Verwaltung des Cache (uv cache)

uv Verwenden Sie den globalen Cache, um das Herunterladen und Erstellen von Paketen zu beschleunigen. (Auf den Cache-Speicherort kann über die Option UV_CACHE_DIR Konfiguration der Umgebungsvariablen)

  • Löschen des Caches (uv cache clean):
    Alle löschen uv Zwischengespeicherte Inhalte. Dies kann verwendet werden, um mögliche Probleme mit dem Cache zu lösen oder Speicherplatz freizugeben.

    uv cache clean
    
  • Anzeigen des Cache-Verzeichnisses (uv cache dir):
    Aktuelle Ansicht uv Der Ort, an dem die Cache-Datei gespeichert wird (vorbehaltlich der UV_CACHE_DIR Auswirkungen).

Projektverwaltung mit einem Skript

Für einige einfache Widgets oder Skripte kann dieuv Unterstützt einen sehr schlanken Verwaltungsansatz: Einbettung von Projekt-Metadaten und Abhängigkeiten direkt in die Python in einem speziellen Kommentarblock in der Kopfzeile des Skripts.

  1. Initialisierungsskript (uv init --script):
    # 创建一个名为 my_script.py 的脚本,并指定 Python 版本要求
    uv init --script my_script.py --python ">=3.10"
    

    Dies wird in der my_script.py Am Anfang der Datei wird ein Kommentarblock ähnlich dem folgenden erzeugt:

    #!/usr/bin/env python
    # /// script
    # requires-python = ">=3.10"
    # dependencies = [
    # ]
    # ///
    import sys
    def main() -> None:
    print(f"Hello from {sys.argv[0]}!")
    if __name__ == "__main__":
    main()
    
  2. Hinzufügen/Entfernen von Skript-Abhängigkeiten (uv add/remove --script):
    Kann direkt verwendet werden add vielleicht remove Auftrag, in Verbindung mit dem --script um die Abhängigkeitsliste im Skriptkopf zu ändern.

    # 为 my_script.py 添加 requests 依赖
    uv add --script my_script.py requests
    # 从 my_script.py 移除 requests 依赖
    uv remove --script my_script.py requests
    

    Diese Befehle ändern direkt den Header der Skriptdatei dependencies Liste.

  3. Führen Sie das Skript (uv run):
    Direkte Verwendung uv run Das Skript kann ausgeführt werden.

    uv run my_script.py
    

    uv liest automatisch die Metadaten in der Kopfzeile des Skripts, erstellt bei Bedarf eine temporäre virtuelle Umgebung, installiert die darin angegebenen Abhängigkeiten und führt dann das Skript aus. Dieser Ansatz ist ideal für die Verteilung eines einzelnen, in sich geschlossenen Python Werkzeug-Skript.

Zukunftsaussichten und Empfehlungen

uv Es handelt sich zweifelsohne um ein ehrgeiziges und äußerst schnell wachsendes Projekt. Es stützt sich auf Rust Die Leistungsvorteile und die gut gestaltete, einheitliche Schnittstelle versprechen eine deutliche Verbesserung der Python Erfahrung in der Verwaltung von Entwicklerpaketen und -umgebungen. Seine Grundwerte sindTempoim Gesang antwortenkonform.

(tun Sie es einfach) ohne zu zögern uv Das relativ junge Ökosystem (z. B. tiefe IDE-Integrationen, Tutorial-Ressourcen von Drittanbietern) wächst noch schnell und Befehle oder Verhaltensweisen können aufgrund der aktiven Iteration von Version zu Version leicht verändert werden (es wird empfohlen, das Changelog im Auge zu behalten).

Aber vorläufig.uv Die Kernfunktionen sind recht stabil und robust.

Anregung:

  • in Bezug aufeingehend Python SportereignisEs wird dringend empfohlen, dass die direkte Übernahme von uv. Es bietet von Anfang an eine erfrischende und effiziente Verwaltungserfahrung.
  • Für dieseDie bestehenden Toolchains (z. B. pip + virtualenv + pip-tools (Kombinierte) Komplexität oder Leistungsprobleme plagenvon Entwicklern und Teams.uv ist eine sehr attraktive Alternative und es lohnt sich, Zeit in die Evaluierung und Migration zu investieren.
  • Für diejenigen, die sich intensiv mit Poetry vielleicht PDM und sich auf ihre spezifischen fortgeschrittenen Funktionen verlassen (z. B. komplexe Plug-in-Systeme, feinkörniges Management des Freigabeprozesses), kann die Migration eine sorgfältigere Bewertung erfordern, bei der die uv Die Geschwindigkeit und Einfachheit, die damit einhergehen, stehen dem möglichen Verlust bestimmter Funktionen gegenüber.

uv wird schnell zum Python Eine Kraft, mit der man in den Entwicklungs-Workflows rechnen muss und deren Auftauchen ebenso wichtig sein könnte wie die ruff Zum Beispiel, in der Python Die Gemeinschaft hat eine neue Runde der Werkzeuginnovation eingeleitet. Ihre Zukunft verdient unsere weitere Aufmerksamkeit.

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " gemeinsame uv-Befehle
de_DEDeutsch