comandos comunes uv
Tutoriales prácticos sobre IAActualizado hace 4 meses Círculo de intercambio de inteligencia artificial 2.7K 00
Python
A Eco nunca le han faltado herramientas de gestión de envases y gestión medioambiental, desde el clásico pip
yvirtualenv
hasta pip-tools
yconda
y luego se modernizó Poetry
yPDM
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:
- 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 programapip
tal vezPoetry
que 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á elRust
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íaTokio
yReqwest
) Créditos. - 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.toml
compatiblerequirements.txt
), a la ejecución de scripts, la gestión de herramientas globales e incluso la instalación dePython
versión del proceso de desarrollo completo. - Gestión moderna de proyectos: Soporte nativo
pyproject.toml
(norma PEP 517/518/621), que es la actualPython
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. - Buena compatibilidad::
uv
Proporciona un enlace a lapip
Interfaz de comandos altamente compatible (uv pip ...
) y puede entenderrequirements.txt
lo que permite migrar los proyectos existentes al formato de archivouv
El proceso es relativamente sencillo. - Desarrollo activo y futuro:: Por
Astral
El equipo mantiene activamente e itera rápidamente utilizando elMIT
Licencia de código abierto. Gran interés de la comunidad, gran potencial de desarrollo y un futuro prometedor.
utilizar uv
Se 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 vezWindows
(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 opipx
El entorno en sí no está en el disco del sistema, y al instalarlo de esta manera eluv
También suele seguir su posición. Puede configurarlo mediante el parámetroPIPX_HOME
Variables de entorno a controlarpipx
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ónuv
) 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 elCargo
(utilizado como expresión nominal)bin
Catálogo. Esto puede hacerse configurando la opciónCARGO_HOME
La variable de entorno establece toda la.cargo
(que contiene el archivocrates
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
: Controluv
Ubicación del directorio de caché. La caché incluye los archivos de paquetes descargados, construidoswheel
etc., que pueden ocupar más espacio.UV_PYTHON_INSTALL_DIR
:: Control medianteuv python install
descargado y gestionadoPython
La ubicación donde se instalará el intérprete.UV_TOOL_INSTALL_DIR
:: Control medianteuv tool install
Global instaladoPython
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):
- existe
Windows
Busca "variables de entorno" en la barra de búsqueda. - Haga clic en "Editar variables de entorno del sistema".
- En el cuadro de diálogo "Propiedades del sistema", pulse el botón "Variables de entorno...". .
- 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 ..." .".
- Introduzca el nombre de la variable (por ejemplo
UV_CACHE_DIR
) y valores variables (comoD:\uvdata\cache
). - Repítelo para las otras dos variables.
- Haga clic en "Aceptar" para cerrar todos los cuadros de diálogo.
- crux:: Obligatorioreabrir
PowerShell
para que la nueva variable de entorno surta efecto.
- existe
- 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ógicoexport
a su archivo de configuración de Shell (por ejemplo~/.bashrc
,~/.zshrc
,~/.profile
) y, a continuación, ejecute el comandosource ~/.your_config_file
o reinicie el terminal para que la configuración surta efecto.
Notas importantes:
- Después de configurar estas variables de entorno, el
uv
Las rutas especificadas se utilizan automáticamente. Asegúrese de que estos directorios existen y de queuv
Tener acceso de escritura. - Entorno virtual (
.venv
) posición:uv 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 discoD:\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 medianteuv 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
: ModernoPython
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.), necesariosPython
Versión (requires-python
) y las principales dependencias del proyecto (dependencies
) y grupos de relaciones opcionales (por ejemplodev-dependencies
). Es la "única fuente de verdad" para la configuración del proyecto.uv.lock
:: Poruv
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 mismouv.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 losuv
(por ejemploadd
,sync
,run
) se detectan automáticamente y las operaciones se realizan en este entorno, evitando el globalPython
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.gitignore
Inicialización automáticaGit
y proporciona unPython
evento deportivo.gitignore
Documentación..python-version
Documentación de propuestas o solicitudes de proyectosPython
versión (por ejemplo3.12
).uv
se remitirá a este documento para seleccionar o instalar elPython
Intérprete.pyproject.toml
Fichero de configuración del proyecto: contiene el nombre, la versión y la descripción del proyecto,Python
Requisitos de versión y vacíodependencies
Lista.README.md
un vacíoREADME
Documentación.src/my_uv_project/__init__.py
Una estructura básica del código fuente (si se utiliza el métodosrc
(Disposición). O un simplehello.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 venv
, uv 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
).
- Crear un entorno virtual (
uv venv
)::
aunqueuv sync
y otros comandos crean automáticamente.venv
pero 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 (add
,remove
,sync
,run
etc.).No suele ser necesaria la activación manual del entorno(matemáticas) génerouv
encontrará y utilizará automáticamente el.venv
. - 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íauv.lock
documentos) orequirements.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 seuv.lock
Documentación. - recuperar
Gestión de las dependencias (uv add
, uv remove
, uv 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 alpyproject.toml
(utilizado como expresión nominal)[project.dependencies]
y automáticamente instala o actualiza.venv
medio ambiente. Al mismo tiempouv.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 eluv.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
- Actualice todas las dependencias a
- Edición manual
pyproject.toml
emperatriz:
Si modifica directamente elpyproject.toml
en el archivo, deberá realizar los dos pasos siguientes para que los cambios surtan efecto:uv lock
:: Basado enpyproject.toml
El nuevo contenido recalcula las relaciones y actualiza eluv.lock
Documentación.uv sync
:: Willuv.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:
- Descubrimiento automático del entorno::
uv
buscará automáticamente el directorio actual y el directorio padre del archivo.venv
Entornos virtuales. - 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 directorioPython
Intérprete (.venv/bin/python
tal vez.venv/Scripts/python.exe
) para ejecutar el script. - con respecto a
uv run pytest tests/
tal vezuv run ruff format .
dicha orden.uv
asegúrese deDentro del proceso hijo que ejecuta el comandoEl interino será.venv/bin
(o.venv/Scripts
) al sistemaPATH
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 comandopytest
,ruff
).
- con respecto a
¿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 Actions
,GitLab CI
) puede utilizarse directamente en eluv 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 alpytest
Y 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 noPython
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.toml
pero 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
) (Recomendadorequirements
flujo de trabajo):
Este planteamiento es similar al depip-tools
. Usted mantiene unrequirements.in
(que sólo contiene las dependencias directas) y, a continuación, utilice el archivouv
Generar la versión exacta delrequirements.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 variosrequirements.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 list
,uv pip show
,uv 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á elPython
Instálelo en su directorio gestionado (uv python dir
La ruta se puede ver, sujeto aUV_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 archivoPython
Versión.uv python pin 3.11
más allá de
uv venv
,uv run
,uv 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 vezuvx
):
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
seauv 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 directoriouv
y vincular su ejecutable a la ruta del usuario (puede ser necesario reiniciar el terminal o configurar manualmente elPATH
(para poder llamarlo directamente). Esto es similar alpipx install
.uv tool install black uv tool install httpie
Una vez instalado, en teoría puede ejecutarse directamente desde cualquier lugar
black .
tal vezhttp 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
):
demuestreuv
La ruta raíz donde se almacenan las herramientas globales y sus entornos (sujeta a la directivaUV_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 todouv
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 actualidaduv
La ubicación donde se almacena el archivo de caché (sujeto aUV_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.
- 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()
- Añadir/eliminar dependencias de script (
uv add/remove --script
):
Puede utilizarse directamenteadd
tal vezremove
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. - Ejecute el script (
uv run
):
Uso directouv 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 deuv
. 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 vezPDM
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 lauv
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
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...