Python A Eco nunca le han faltado herramientas de gestión de envases y gestión medioambiental, desde el clásico pipyvirtualenv hasta pip-toolsyconday luego se modernizó PoetryyPDM Y así sucesivamente. Cada herramienta tiene su área de especialización, pero también suele hacer que la cadena de herramientas de un desarrollador sea fragmentada y compleja.

Ahora, desde Astral Empresa (conocida) Python Linter Ruff (el creador del uv El cruce ha abierto nuevas posibilidades. Este producto utiliza Rust herramientas escritas en el idioma, aspira a ser un Rápido, unificado y fácil de desarrollar Python Gestor de paquetes y proyectos. Su objetivo es claro: aprovechar Rust ecológico Cargo La exitosa experiencia de la empresa ofrece una solución integral.uv No sólo es rápido, sino que también integra gestión de entornos, instalación de paquetes, resolución de dependencias, gestión de proyectos y mucho más.

¿Por qué UV?

En comparación con las herramientas existentesuv Ofreciendo una alternativa más moderna y eficiente a sus principales puntos fuertes:

  1. Aumento significativo de la velocidad: Basado en Rust de optimización en tiempo de compilación y procesamiento concurrente eficiente.uv En operaciones comunes como la resolución de dependencias y la instalación de paquetes, es más rápido que las herramientas tradicionales como el programa pip tal vez Poetryque a menudo pueden ser órdenes de magnitud más rápidas. El eficaz mecanismo de caché global incorporado también hace que las operaciones repetitivas sean casi instantáneas. Detrás de todo esto está el Rust características del lenguaje (p. ej., concurrencia sin miedo gracias a la seguridad de memoria) y bibliotecas subyacentes de alta calidad (p. ej., la librería TokioyReqwest) Créditos.
  2. Integración funcional completa::uv Pensada para ser una "navaja suiza" en manos de los desarrolladores, abarca desde la creación y gestión de entornos virtuales hasta la instalación y bloqueo de dependencias (soporte nativo). pyproject.tomlcompatible requirements.txt), a la ejecución de scripts, la gestión de herramientas globales e incluso la instalación de Python versión del proceso de desarrollo completo.
  3. Gestión moderna de proyectos: Soporte nativo pyproject.toml (norma PEP 517/518/621), que es la actual Python El perfil estándar de facto del proyecto.uv Capacidad para gestionar claramente las agrupaciones de dependencias (por ejemplo, dependencias de desarrollo) y generar plataformas cruzadas. uv.lock Archivo bloqueado. Este archivo de bloqueo registra con precisión las versiones específicas y las fuentes de todas las dependencias directas e indirectas, asegurando que un entorno completamente consistente puede ser reconstruido en cualquier máquina, en cualquier momento, para una construcción verdaderamente determinista.
  4. Buena compatibilidad::uv Proporciona un enlace a la pip Interfaz de comandos altamente compatible (uv pip ...) y puede entender requirements.txt lo que permite migrar los proyectos existentes al formato de archivo uv El proceso es relativamente sencillo.
  5. Desarrollo activo y futuro:: Por Astral El equipo mantiene activamente e itera rápidamente utilizando el MIT Licencia de código abierto. Gran interés de la comunidad, gran potencial de desarrollo y un futuro prometedor.

utilizar uvSe espera que los desarrolladores experimenten Node.js ( npm / yarn / pnpm ) o Rust ( Cargo ) como flujos de trabajo de gestión de dependencias fluidos y uniformes.

Instalación de UV

montaje uv Muy sencillo. La recomendación oficial es utilizar el script de instalación proporcionado, ya que no depende del existente Python El medio ambiente. Por supuesto, al pip o System Package Manager también son opciones viables.

  • Método recomendado (Cross-platform 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"
    

    tenga en cuentaEl script oficial establecerá por defecto uv Instalar en una ubicación específica del directorio de usuario (p. ej. Linux / macOS (utilizado como expresión nominal) ~/.uv/bin tal vez Windows (utilizado como expresión nominal) %LOCALAPPDATA%\uv\bin), que normalmente se encuentra en el disco del sistema (p. ej. C: (Disco).

  • Utilizar pip (requiere un entorno Python existente)::
    pip install uv
    # 或推荐使用 pipx 进行隔离安装
    # pipx install uv
    

    Si su Python Medio ambiente o pipx El entorno en sí no está en el disco del sistema, y al instalarlo de esta manera el uv También suele seguir su posición. Puede configurarlo mediante el parámetro PIPX_HOME Variables de entorno a controlar pipx la ruta de instalación.

  • Uso del gestor de paquetes del sistema (ejemplo)::
    # macOS (Homebrew)
    brew install uv
    # Windows (Scoop)
    # 可以先将 Scoop 本身安装到非系统盘,然后用它安装 uv
    scoop install uv
    # Arch Linux
    pacman -S uv
    

    Si, como en el caso de Scoop Un gestor de paquetes de este tipo se configura a su vez en un disco que no es del sistema y, a continuación, las aplicaciones que instala (incluida la aplicación uv) suelen instalarse también en la misma unidad.

  • Uso de Cargo (requiere un entorno Rust)::
    cargo install uv --locked --git https://github.com/astral-sh/uv
    

    uv se instalará en el Cargo (utilizado como expresión nominal) bin Catálogo. Esto puede hacerse configurando la opción CARGO_HOME La variable de entorno establece toda la .cargo (que contiene el archivo crates y productos compilados) migrado a discos no pertenecientes al sistema.

Una vez finalizada la instalación, ejecute uv --version tal vez uv help para comprobar que la instalación se ha realizado correctamente.

Configuración de la ubicación de almacenamiento de datos UV (avanzada)

Por defecto, eluv Se almacenará en caché, descargará el Python así como a través de la versión uv tool install Las herramientas globales instaladas se almacenan en una ubicación por defecto en el directorio de usuario (normalmente en la unidad del sistema). Si desea almacenarlas en otra unidad (como la unidad de disco D: disco) para ahorrar espacio en el disco del sistema o para reducir SSD Write, que puede configurarse mediante la opciónvariable de entornopara hacerlo realidad.

He aquí algunas variables de entorno clave:

  • UV_CACHE_DIR: Control uv Ubicación del directorio de caché. La caché incluye los archivos de paquetes descargados, construidos wheel etc., que pueden ocupar más espacio.
  • UV_PYTHON_INSTALL_DIR:: Control mediante uv python install descargado y gestionado Python La ubicación donde se instalará el intérprete.
  • UV_TOOL_INSTALL_DIR:: Control mediante uv tool install Global instalado Python Lugar de almacenamiento de las herramientas y sus entornos aislados.

Cómo establecer variables de entorno (ejemplo):

Supongamos que el objetivo es combinar todos uv Los datos se almacenan en el D:\uvdata Catálogo.

  • Windows (PowerShell - configuración temporal, válida sólo para la sesión actual):
    $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 (variables de entorno del sistema - configuración permanente):
    1. existe Windows Busca "variables de entorno" en la barra de búsqueda.
    2. Haga clic en "Editar variables de entorno del sistema".
    3. En el cuadro de diálogo "Propiedades del sistema", pulse el botón "Variables de entorno...". .
    4. En el área "Variables de usuario" o "Variables de sistema" (se recomienda Variables de usuario, a menos que sea necesario para todos los usuarios), haga clic en "Nuevo ..." .".
    5. Introduzca el nombre de la variable (por ejemplo UV_CACHE_DIR) y valores variables (como D:\uvdata\cache).
    6. Repítelo para las otras dos variables.
    7. Haga clic en "Aceptar" para cerrar todos los cuadros de diálogo.
    8. crux:: Obligatorioreabrir PowerShell para que la nueva variable de entorno surta efecto.
  • Linux / macOS (bash/zsh - configuración temporal):
    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 (configuración permanente):
    topológico export a su archivo de configuración de Shell (por ejemplo ~/.bashrc~/.zshrc~/.profile) y, a continuación, ejecute el comando source ~/.your_config_file o reinicie el terminal para que la configuración surta efecto.

Notas importantes:

  • Después de configurar estas variables de entorno, eluv Las rutas especificadas se utilizan automáticamente. Asegúrese de que estos directorios existen y de que uv Tener acceso de escritura.
  • Entorno virtual (.venv) posiciónuv venv Por defecto en suDirectorio raíz del proyectoCree .venv carpeta. Como resultado, la carpetaSiempre que el proyecto se encuentre en un disco que no sea del sistema (como el disco D:\myproject), entonces .venv Naturalmente, también estará en ese disco. No suele ser necesario facilitar una lista de .venv Configure las rutas individualmente para evitar el disco de sistema. Por supuesto, también puede evitar el disco de sistema mediante uv venv /path/to/custom/env Especificar explícitamente dónde se va a crear el entorno virtual, pero esto es más para personalizar la ruta del entorno que para resolver el problema de almacenamiento en disco del sistema.

Configurando adecuadamente estas variables de entorno, puede gestionar eficazmente el uv generado, dirigiéndolo a un lugar de almacenamiento donde el espacio sea más abundante o más apropiado.

Conceptos básicos UV

en el uso de uv A la hora de gestionar un proyecto, es importante comprender los siguientes conceptos básicos:

  • pyproject.toml: Moderno Python Perfil estándar del proyecto (basado en PEP 517/518/621).uv Utilícelo para definir los metadatos del proyecto (nombre, versión, descripción, etc.), necesarios Python Versión (requires-python) y las principales dependencias del proyecto (dependencies) y grupos de relaciones opcionales (por ejemplo dev-dependencies). Es la "única fuente de verdad" para la configuración del proyecto.
  • uv.lock:: Por uv Un archivo bloqueado que se genera y gestiona automáticamente. Registra con precisión los números de versión específicos y los hashes de origen de todas las dependencias del proyecto (incluidas las dependencias indirectas). Su valor fundamental es garantizar queReproducibilidad del entornosiempre y cuando se base en el mismo uv.lock instala las dependencias, se obtiene exactamente la misma combinación de paquetes.Este archivo no debe editarse manualmente.
  • Entorno virtual (.venv)::uv Muy recomendable y simplifica el uso de entornos virtuales. Por defecto crea un entorno virtual en el directorio raíz del proyecto llamado .venv de entornos aislados para albergar las dependencias del proyecto. La mayoría de los uv (por ejemplo addsyncrun) se detectan automáticamente y las operaciones se realizan en este entorno, evitando el global Python Contaminación del medio ambiente.

Gestión de proyectos Python con UV

A continuación se muestra una demostración, a través de un proceso completo, de cómo utilizar uv para crear y gestionar un Python Proyecto.

Inicializar el proyecto (uv init)

utilizar uv init puede construir rápidamente la estructura básica de un nuevo proyecto.

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

Después de la aplicación.uv estará en my_uv_project se genera el directorio:

  • .git/ responder cantando .gitignoreInicialización automática Git y proporciona un Python evento deportivo .gitignore Documentación.
  • .python-versionDocumentación de propuestas o solicitudes de proyectos Python versión (por ejemplo 3.12).uv se remitirá a este documento para seleccionar o instalar el Python Intérprete.
  • pyproject.tomlFichero de configuración del proyecto: contiene el nombre, la versión y la descripción del proyecto,Python Requisitos de versión y vacío dependencies Lista.
  • README.mdun vacío README Documentación.
  • src/my_uv_project/__init__.pyUna estructura básica del código fuente (si se utiliza el método src (Disposición). O un simple hello.py Archivo de ejemplo.
# 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 相关配置

Crear y sincronizar el entorno (uv venvuv sync)

Una vez inicializado el proyecto, es necesario crear el entorno virtual y sincronizar el estado de las dependencias (aunque se trate de una dependencia vacía, la primera sincronización generará el archivo uv.lock).

  1. Crear un entorno virtual (uv venv)::
    aunque uv sync y otros comandos crean automáticamente .venvpero también puede crearse explícitamente:

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

    Si se requiere un entorno de funcionamiento manual (por ejemplo, utilizando un uv herramienta gestionada), entonces deberá activarla:

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

    trabajo: Para la gran mayoría de uv Mando (addremovesyncrun etc.).No suele ser necesaria la activación manual del entorno(matemáticas) génerouv encontrará y utilizará automáticamente el .venv.

  2. Entorno sincronizado (uv sync)::
    Este es uno de los comandos principales que se utilizan para garantizar que el estado del entorno virtual sea el mismo que el del entorno virtual. pyproject.toml(vía uv.lock documentos) o requirements.txt El archivo es precisamente coherente. La primera vez que se ejecuta, lo hará:

    • recuperar pyproject.toml de la definición de la relación.
    • Realiza la resolución de dependencias.
    • generando uv.lock Documentación.
    • existe .venv (inicialmente, sólo el propio proyecto puede estar disponible como paquete editable).
    # 在项目根目录运行
    uv sync
    

    Tras la ejecución, verá .venv Se crea o actualiza el directorio y se uv.lock Documentación.

Gestión de las dependencias (uv adduv removeuv lock)

esto es uv Las funciones más utilizadas, cuyo uso se recomienda en función de pyproject.toml del flujo de trabajo.

  • Añadir una dependencia (uv add):
    Añada el paquete al pyproject.toml (utilizado como expresión nominal) [project.dependencies] y automáticamente instala o actualiza .venv medio ambiente. Al mismo tiempo uv.lock También se actualizará.

    # 添加最新稳定版的 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
    
  • Eliminar dependencias (uv remove):
    a través de (un hueco) pyproject.toml elimina el paquete especificado del .venv para desinstalarlo y desinstalar las dependencias que ya no sean necesarias.

    # 移除 pandas
    uv remove pandas
    # 移除开发依赖 pytest
    uv remove pytest --dev
    
  • Actualización de las dependencias:
    • Actualice todas las dependencias a pyproject.toml La última versión permitida por las restricciones en y regenerar el uv.lock::
      # 1. 更新 lock 文件
      uv lock --upgrade
      # 2. 应用 lock 文件更新到环境
      uv sync
      
    • Actualice sólo determinados paquetes a la última versión:
      # 方法一:指定包更新 lock 文件,然后同步
      uv lock --upgrade-package requests
      uv sync
      # 方法二:直接 'add' 最新版 (也会更新 lock 和环境)
      uv add requests@latest
      
  • Edición manual pyproject.toml emperatriz:
    Si modifica directamente el pyproject.toml en el archivo, deberá realizar los dos pasos siguientes para que los cambios surtan efecto:

    1. uv lock :: Basado en pyproject.toml El nuevo contenido recalcula las relaciones y actualiza el uv.lock Documentación.
    2. uv sync :: Will uv.lock El estado del archivo se sincroniza con el archivo .venv Entornos virtuales.

Ejecute el código y los comandos (uv run)

uv run sea uv Se trata de una función muy práctica. Le permite crear un archivo en el uv Ejecución en el contexto de un entorno virtual gestionado Python script o cualquier comando.No es necesario activar manualmente el entorno de antemano. Esto es uv Una de las características clave de un flujo de trabajo racionalizado que merece la pena dominar.

Principio de funcionamiento:

Cuando ejecute la función uv run <command> [args...] La hora:

  1. Descubrimiento automático del entorno::uv buscará automáticamente el directorio actual y el directorio padre del archivo .venv Entornos virtuales.
  2. Ejecución del entorno de configuración interno:
    • con respecto a uv run python your_script.py dicha orden.uv llamará directamente al .venv del directorio Python Intérprete (.venv/bin/python tal vez .venv/Scripts/python.exe) para ejecutar el script.
    • con respecto a uv run pytest tests/ tal vez uv run ruff format . dicha orden.uv asegúrese deDentro del proceso hijo que ejecuta el comandoEl interino será .venv/bin (o .venv/Scripts) al sistema PATH en la parte superior de las variables de entorno. De esta forma, aunque no actives el entorno, el sistema operativo podrá encontrar y ejecutar las herramientas de línea de comandos instaladas en el entorno virtual (como el comando pytestruff).

¿Cómo se ejecuta un archivo Python?

Para ejecutar el proyecto Python (por ejemplo src/my_package/main.py o el directorio raíz del app.py), que se recomienda:

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

vanguardia:

  • No requiere activación manual: elimina la necesidad de introducir source .venv/bin/activate tal vez .venv\Scripts\Activate.ps1 La molestia de la
  • Garantía de coherencia medioambientalAsegúrese de que su código y sus herramientas se ejecutan siempre en el entorno virtual correcto para la configuración de su proyecto.
  • Simplificación de los guiones CI/CDEn procesos automatizados como GitHub ActionsGitLab CI) puede utilizarse directamente en el uv run Realice tareas como pruebas, construcción y despliegue sin tener que lidiar con la compleja lógica de activación de entornos.

más uv run ejemplo típico:

# 运行安装在环境中的 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

¿Cuándo tengo que activarlo manualmente?

Activación manual (source activate o comandos similares) se ha reducido considerablemente. Probablemente principalmente en la misma sesión de Shell que necesita:

  • Ejecución interactiva frecuente de varios comandos que dependen del entorno virtual (por ejemplo, teclear directamente el comando python Ir al intérprete y luego al pytestY otra vez. ruff).
  • Utilizar algunas variables de entorno específicas que dependen de la configuración de la secuencia de comandos de activación (distintas de la variable de entorno PATH (distintos de) los no Python Herramientas.

Pero para la mayoría de las tareas de desarrollo cotidianas, eluv run La gestión automatizada del medio ambiente es más cómoda y eficaz.

utilizar requirements.txt (compatible con el flujo de trabajo)

aunque uv Recomendado pyproject.tomlpero también es totalmente compatible con los requirements.txt flujos de trabajo, y proporciona pip Interfaz de mando compatible y más rápida.

  • Instalar dependencias (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 .
    
  • Desinstalación de dependencias (uv pip uninstall):
    uv pip uninstall flask
    # 从文件批量卸载
    uv pip uninstall -r requirements-to-remove.txt
    
  • Generar una lista de dependencias (uv pip freeze):
    # 输出当前环境安装的所有包 (类似 pip freeze)
    uv pip freeze > requirements.lock.txt # 常用于生成锁定文件
    
  • Compilar dependencias (uv pip compile) (Recomendado requirements flujo de trabajo):
    Este planteamiento es similar al de pip-tools. Usted mantiene un requirements.in (que sólo contiene las dependencias directas) y, a continuación, utilice el archivo uv Generar la versión exacta del requirements.txt Bloquea el archivo.

    # 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
    
  • Entorno sincronizado (uv pip sync):
    Basado en uno o varios requirements.txt El contenido del archivo se sincroniza con precisión con el entorno virtual: se instalan los paquetes que faltan y se eliminan los redundantes.

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

Gestión de las versiones de Python (uv python)

uv Descarga, gestión y selección integradas Python de la función, similar a la pyenv. (Recuerde que puede hacerlo a través del UV_PYTHON_INSTALL_DIR Las variables de entorno configuran estos Python (posición de montaje)

  • Lista de versiones disponibles e instaladas (uv python list):
    # 列出已安装和当前使用的版本
    uv python list
    # 显示所有可供下载的补丁版本
    # uv python list --all-versions
    # 只显示已安装的版本
    uv python list --only-installed
    
  • Instale la versión de Python (uv python install):
    # 安装最新的稳定版 (如果尚未安装)
    uv python install
    # 安装特定版本
    uv python install 3.11.5
    # 安装 3.10 系列的最新可用版
    uv python install 3.10
    

    uv enviará el Python Instálelo en su directorio gestionado (uv python dir La ruta se puede ver, sujeto a UV_PYTHON_INSTALL_DIR impacto).

  • Desinstalar la versión de Python (uv python uninstall):
    uv python uninstall 3.10.8
    # 卸载 3.11 系列所有已安装版本
    uv python uninstall 3.11
    
  • Corregida la versión Python del proyecto (uv python pin):
    Crear o actualizar en el directorio actual .python-version que declara que el proyecto debe utilizar el archivo Python Versión.

    uv python pin 3.11
    

    más allá de uv venvuv runuv sync y otros comandos encontrarán y utilizarán preferentemente esta versión.

  • Busque el intérprete de Python (uv python find):
    # 查找匹配 3.12 的 Python 解释器路径
    uv python find 3.12
    

Gestionar herramientas globales (uv tool)

uv Podría ser como pipx Como siempre, instale y ejecute el programa global Python CLI herramientas, y aislar cada herramienta en un entorno separado para evitar conflictos de dependencias. (Del mismo modo, la ubicación de almacenamiento de las herramientas se puede cambiar con la opción UV_TOOL_INSTALL_DIR configuración de variables de entorno)

  • Herramientas de ejecución (aplicación ad hoc, etc.) uv tool run tal vez uvx):
    Descarga temporalmente (si es necesario) y ejecuta la herramienta, y no la retiene después de la ejecución. Esto es muy práctico para herramientas de un solo uso.uvx sea uv tool run La forma abreviada.

    # 运行 ruff 检查当前目录,临时下载 ruff
    uv tool run ruff check .
    # 使用简写 uvx
    uvx ruff check .
    # 如果命令名 (http) 和包名 (httpie) 不同,使用 --from
    uvx --from httpie http https://example.com
    
  • Instalación de herramientas globales (uv tool install):
    Instale la herramienta y sus dependencias en el directorio uv y vincular su ejecutable a la ruta del usuario (puede ser necesario reiniciar el terminal o configurar manualmente el PATH (para poder llamarlo directamente). Esto es similar al pipx install.

    uv tool install black
    uv tool install httpie
    

    Una vez instalado, en teoría puede ejecutarse directamente desde cualquier lugar black . tal vez http https://example.com.

  • Lista de herramientas instaladas (uv tool list):
    uv tool list
    
  • Herramienta de actualización (uv tool upgrade):
    uv tool upgrade black
    # 升级所有已安装工具
    # uv tool upgrade --all
    
  • Herramientas de desinstalación (uv tool uninstall):
    uv tool uninstall black
    
  • Ver el directorio de instalación de la herramienta (uv tool dir):
    demuestre uv La ruta raíz donde se almacenan las herramientas globales y sus entornos (sujeta a la directiva UV_TOOL_INSTALL_DIR impacto).

Gestión de la memoria caché (uv cache)

uv Utilice la caché global para acelerar la descarga de paquetes y el proceso de compilación. (Se puede acceder a la ubicación de la caché mediante la opción UV_CACHE_DIR configuración de variables de entorno)

  • Borrar la caché (uv cache clean):
    Borrar todo uv Contenido en caché. Puede utilizarse para resolver posibles problemas de contaminación de la caché o para liberar espacio en disco.

    uv cache clean
    
  • Mostrar el directorio de caché (uv cache dir):
    Ver la actualidad uv La ubicación donde se almacena el archivo de caché (sujeto a UV_CACHE_DIR impacto).

Gestión de proyectos con un único guión

Para algunos widgets o scripts sencillos, la opciónuv Admite un enfoque de gestión muy ligero: incrustar los metadatos y las dependencias del proyecto directamente en los Python en un bloque especial de comentarios en la cabecera del script.

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

    Esto será en el my_script.py Al principio del fichero se genera un bloque de comentarios similar al siguiente:

    #!/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. Añadir/eliminar dependencias de script (uv add/remove --script):
    Puede utilizarse directamente add tal vez remove orden, junto con la --script para modificar la lista de dependencias en la cabecera del script.

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

    Estos comandos modifican directamente la cabecera del archivo de script dependencies Lista.

  3. Ejecute el script (uv run):
    Uso directo uv run El script puede ejecutarse.

    uv run my_script.py
    

    uv lee automáticamente los metadatos de la cabecera del script, crea un entorno virtual temporal bajo demanda, instala las dependencias declaradas en él y, a continuación, ejecuta el script. Este enfoque es ideal para distribuir un único script autocontenido. Python Guión de herramientas.

Perspectivas de futuro y recomendaciones

uv Se trata, sin duda, de un proyecto ambicioso y de rápido crecimiento. Se basa en Rust Las ventajas de rendimiento y una interfaz unificada y bien diseñada prometen mejorar significativamente el Python Experiencia en gestión de paquetes y entornos para desarrolladores. Sus valores fundamentales sontemporesponder cantandoConforme.

(adelante, hazlo) sin dudarlo uv Relativamente joven, el ecosistema (por ejemplo, integraciones profundas de IDE, recursos de tutoriales de terceros) sigue creciendo rápidamente y los comandos o comportamientos pueden ser ligeramente modificados entre versiones debido a su iteración activa (se recomienda mantener un ojo en su registro de cambios).

Pero por el momento.uv La funcionalidad básica ha sido bastante estable y robusta.

sugerencia:

  • con respecto aentrante Python evento deportivoSe recomienda encarecidamente la adopción directa de uv. Ofrece una experiencia de gestión refrescante y eficaz desde el primer momento.
  • Para aquellosSufrimiento de las cadenas de herramientas existentes (p. ej. pip + virtualenv + pip-tools (Combinado) la complejidad o los problemas de rendimiento plagande desarrolladores y equipos.uv es una alternativa muy atractiva y merece la pena invertir tiempo en evaluarla y migrar para probarla.
  • Para aquellos que han estado utilizando profundamente Poetry tal vez PDM y se basan en sus características avanzadas específicas (por ejemplo, complejos sistemas de plug-ins, gestión de procesos de liberación de granularidad fina), la migración puede requerir una evaluación más cuidadosa, sopesando la uv La rapidez y sencillez que conlleva frente a la posible pérdida de funciones específicas.

uv se está convirtiendo Python Una fuerza a tener en cuenta en los flujos de trabajo de desarrollo, su aparición puede ser tan importante como el ruff Como, en el Python La comunidad ha desencadenado una nueva ronda de innovación de herramientas. Su futuro merece toda nuestra atención.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...