uv: nuevo gestor de paquetes, proyectos y entornos de Python
Lo bueno de Python uv
Python uv (pronunciado “you-vee”) es un moderno gestor de paquetes y proyectos de Python de alto rendimiento, escrito en Rust. Está diseñado como una alternativa directa para las herramientas tradicionales de gestión de paquetes de Python, como pip, pip-tools, virtualenv, pipx y pyenv, con el objetivo de simplificar y acelerar los flujos de trabajo de desarrollo en Python.
uv es desarrollado por Astral, el equipo detrás del popular linter de Python Ruff, y está diseñado para abordar puntos dolorosos comunes en el ecosistema de Python, como las instalaciones lentas, los conflictos de dependencias y la gestión compleja de entornos, aprovechando el rendimiento de Rust y la arquitectura de software moderna.

Características principales de uv
- Velocidad excepcional: uv es significativamente más rápido que las herramientas tradicionales, típicamente 8–10 veces más rápido que pip sin caché, y hasta 80–115 veces más rápido con una caché caliente.
- Herramienta todo en uno: Combina la instalación de paquetes, la resolución de dependencias, la gestión de entornos virtuales, la gestión de versiones de Python, la creación de estructura de proyectos y la ejecución de scripts en una sola herramienta.
- Compatibilidad: Ofrece una interfaz de línea de comandos compatible con pip, lo que facilita su adopción sin una curva de aprendizaje pronunciada.
- Gestión sólida de dependencias: Proporciona una resolución precisa de dependencias y soporte para archivos de bloqueo (lockfile) para entornos reproducibles.
- Entornos virtuales automáticos: Crea y gestiona entornos virtuales automáticamente, reduciendo la configuración manual.
- Soporte multiplataforma: Funciona en macOS, Linux y Windows.
- Instalación independiente: Puede instalarse sin requerir Python o Rust, utilizando un instalador simple o
curl.

¿Todavía no estás seguro de por qué usar uv?
- Rendimiento: Reduce drásticamente los tiempos de instalación de paquetes y resolución de dependencias.
- Simplicidad: Unifica múltiples herramientas en una, optimizando la configuración y gestión de proyectos.
- Fiabilidad: Proporciona entornos consistentes y reproducibles con mensajes de error claros y resolución de conflictos.
- Estándares modernos: Soporta
pyproject.tomlpara la configuración de proyectos, alineándose con los estándares actuales de empaquetado de Python.
Casos de uso de ejemplo
¡Intentemos algo emocionante!
- Iniciar un nuevo proyecto:
uv init myproject
cd myproject
uv add requests
uv run python script.py
Esto crea un directorio de proyecto, configura un entorno virtual, instala dependencias y ejecuta scripts en un entorno aislado.
- Gestionar scripts con dependencias inline:
uv add --script script.py requests
uv run script.py
uv puede gestionar dependencias para scripts de un solo archivo sin archivos de requisitos separados.
Comparación con herramientas tradicionales
| Función | uv | pip/virtualenv | Poetry |
|---|---|---|---|
| Velocidad | Muy rápida | Lenta | Moderada |
| Entornos Virtuales | Automático | Manual | Automático |
| Resolución de Dependencias | Avanzada | Básica | Avanzada |
| Gestión de Versiones de Python | Sí | No (requiere pyenv) | No |
| Soporte de Lockfile | Sí | No (requiere pip-tools) | Sí |
| Ejecución de Scripts | Integrada | No | Limitada |
¿Cómo puedo instalar y comenzar a usar UV en mi sistema
Para instalar y comenzar a usar uv en su sistema, siga estos pasos sencillos:
Instalación
- Instalador independiente (Recomendado)
- Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
O, si prefiere wget:
wget -qO- https://astral.sh/uv/install.sh | sh
- Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Versión específica: Puede solicitar una versión específica incluyéndola en la URL, p. ej.,
https://astral.sh/uv/0.7.15/install.sh.
- Alternativa: Instalar vía pip (si tiene Python instalado)
pip install uv
Nota: Este método no es muy recomendado para acceso en todo el sistema a menos que sepa lo que está haciendo, ya que puede saturar su entorno de Python del sistema.
- Instalar vía pipx (para instalación aislada a nivel de usuario)
pipx install uv
Este método es más limpio para el acceso global si ya utiliza pipx.
Primeros pasos
Para Comprobar la Instalación - Ejecute:
uv
Debería ver un menú de ayuda confirmando que uv está instalado y listo.
Para Crear y Activar un Entorno Virtual
- Crear un venv:
uv venv test
- Activarlo en Linux/macOS:
source test/bin/activate
- Activarlo en Windows:
.\test\Scripts\activate
Ahora puede usar uv pip install para instalar paquetes en este entorno.
Inicializar un Nuevo Proyecto
uv init
Esto crea un pyproject.toml y un .gitignore para su proyecto.
Agregar Dependencias
Agregar un paquete:
uv add
Esto actualiza pyproject.toml y genera/actualiza el lockfile.
Sincronizar Dependencias
Instalar todas las dependencias en su entorno:
uv sync
O, usar la interfaz compatible con pip:
uv pip install
Esto asegura que todas las dependencias estén instaladas según su lockfile.
Ejecutar Scripts
Use:
uv run script.py
Esto gestiona automáticamente el entorno y las dependencias para su script.
Integración con Shell (Opcional)
Para un flujo de trabajo más fluido, puede añadir la integración con shell a su .zshrc o .bashrc para activar automáticamente un entorno virtual predeterminado y asignar un alias a pip como uv pip.
Con estos pasos, tendrá uv instalado y estará listo para gestionar sus proyectos de Python con rapidez y facilidad.
Instalación de Versiones Específicas de Python
Puede usar uv para instalar versiones específicas de Python y gestionarlos para sus proyectos.
- Instalar la versión estable más reciente de Python:
Este comando descarga e instala la versión estable más reciente de Python disponible.uv python install - Instalar una versión específica:
Esto instala el parche de mantenimiento más reciente de Python 3.12 (p. ej., 3.12.3).uv python install 3.12 - Instalar una versión de parche exacta:
Esto instala exactamente Python 3.12.3.uv python install 3.12.3 - Instalar múltiples versiones:
Esto instala Python 3.9, 3.10 y 3.11.uv python install 3.9 3.10 3.11 - Instalar una versión que cumpla con una restricción:
Esto cambia el requisito de la versión de Python del proyecto.uv python install '>=3.8,=3.11"
Notas Adicionales
Descargas Automáticas: Por defecto, uv descargará e instalará automáticamente las versiones de Python requeridas si no se encuentran en su sistema.
Python del Sistema: uv puede utilizar instalaciones de Python existentes si están presentes, o puede forzarlo para que use el Python del sistema con la bandera --no-managed-python.
Actualización: Puede actualizar las versiones de Python gestionadas por uv a la versión de parche más reciente con:
uv python upgrade 3.12
O actualizar todas las versiones instaladas:
uv python upgrade
La actualización entre versiones menores (p. ej., de 3.12 a 3.13) no está soportada.
En resumen, uv proporciona herramientas flexibles y potentes para instalar, gestionar y utilizar versiones específicas de Python en sus proyectos.
¿Cómo descubre UV los intérpretes de Python disponibles en diferentes sistemas?
UV descubre los intérpretes de Python disponibles en diferentes sistemas verificando un conjunto de ubicaciones bien definidas y consultando cada candidato por su metadatos de versión. Así es como funciona:
- Instalaciones de Python Gestionadas:
UV primero busca en el directorio especificado por la variable de entornoUV_PYTHON_INSTALL_DIR, donde almacena sus propias versiones de Python gestionadas. - PATH del Sistema:
En macOS y Linux, UV busca ejecutables llamadospython,python3opython3.x(dondexes un número de versión) en los directorios listados en elPATHdel sistema. En Windows, buscapython.exe. - Ubicaciones Específicas de Windows:
En Windows, UV también comprueba el registro de Windows e intérpretes de Python de Microsoft Store utilizando la salida depy --list-paths. - Entornos Virtuales:
Si un entorno virtual está activo o especificado, UV comprueba el intérpreter en ese entorno para ver la compatibilidad antes de buscar en otras partes. - Consulta de Metadatos:
Cada ejecutable descubierto se consulta por sus metadatos de versión. Solo los ejecutables que coincidan con la versión solicitada (o restricción de versión) se consideran. Los archivos no ejecutables se ignoran. - Preferencia y Fallback:
Por defecto, UV prefiere las instalaciones de Python del sistema, pero puede ajustar esto con opciones para preferir las versiones gestionadas o usar solo versiones gestionadas/de sistema. Si no se encuentra ningún intérprete adecuado, UV puede descargar e instalar la versión requerida.
Este proceso de descubrimiento robusto asegura que UV pueda localizar y utilizar el intérprete de Python correcto de manera confiable en diferentes sistemas operativos y entornos.
Enlaces útiles
- Página de inicio de uv: https://docs.astral.sh/uv/
- Paquete uv: https://pypi.org/project/uv/
- Github de uv: https://github.com/astral-sh/uv/
- Hoja de referencia de Python
- Hoja de referencia de Conda
- Hoja de referencia de venv
- Hoja de referencia de Bash
- Hoja de referencia de venv
- Popularidad de lenguajes de programación y frameworks
- Hub de Herramientas para Desarrolladores — hojas de referencia, herramientas CLI y flujos de trabajo de desarrollo