Si programas en Python regularmente, probablemente conoces la rutina: crear un ambiente virtual con python -m venv, activarlo, instalar dependencias con pip, y luego descubrir que alguien más del equipo tiene versiones distintas porque no existe un requirements.lock real.
Ese flujo está cambiando rápidamente desde que uv apareció en el ecosistema Python.
Qué es uv
uv es una herramienta de gestión de proyectos Python creada por Astral, el mismo equipo que desarrolló Ruff (el linter y formateador que reemplazó a Black, Flake8 y isort). Está escrita en Rust y reemplaza a pip, virtualenv, pip-tools y, en buena medida, a pyenv.
En una sola herramienta puedes:
- Instalar y gestionar versiones de Python
- Crear ambientes virtuales
- Instalar dependencias
- Generar y respetar archivos de bloqueo (
uv.lock) - Ejecutar scripts con dependencias inline
Cómo instalar uv
En Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
En Linux o macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
Listo. No necesitas Python preinstalado para empezar.
Ventaja 1: Es extremadamente rápido
uv puede instalar dependencias hasta 10-100 veces más rápido que pip. Esto no es marketing: la diferencia se debe a que está escrita en Rust y usa un resolvedor de dependencias optimizado que paraleliza descargas e instalaciones.
En proyectos grandes con decenas de dependencias, la diferencia entre pip install -r requirements.txt y uv sync pasa de varios minutos a pocos segundos.
Ventaja 2: Gestiona Python, no solo paquetes
Con uv puedes instalar versiones específicas de Python sin depender del administrador de paquetes de tu sistema operativo:
uv python install 3.12
uv python install 3.11 3.10
Luego cambias entre ellas fácilmente:
uv python pin 3.12
Esto elimina la necesidad de pyenv en la mayoría de los casos.
Ventaja 3: Ambientes virtuales automáticos
uv crea y gestiona ambientes virtuales sin que tengas que pensar en ellos. Cuando inicias un proyecto:
uv init mi-proyecto
cd mi-proyecto
uv add requests
uv creó automáticamente un ambiente virtual en .venv/, instaló requests y sus dependencias, y actualizó pyproject.toml.
No necesitas recordar source .venv/bin/activate ni deactivate. uv run python ejecuta tu código dentro del ambiente correcto automáticamente.
Ventaja 4: Bloqueo determinístico de dependencias
Este es quizás el cambio más importante para equipos. Cuando ejecutas:
uv sync
uv genera un archivo uv.lock que registra exactamente qué versión de cada paquete (y subdependencia) está instalada, con hashes de verificación.
Cuando otro desarrollador clona el repositorio y ejecuta uv sync, obtiene exactamente las mismas versiones. No más "en mi máquina sí funciona".
Ventaja 5: Scripts con dependencias inline
Puedes escribir un script Python con sus dependencias declaradas al inicio:
# /// script
# dependencies = ["requests", "pandas"]
# ///
import requests
import pandas as pd
# tu código aquí
Luego ejecutas:
uv run script.py
uv instala automáticamente requests y pandas en un ambiente temporal, ejecuta el script, y limpia después. No necesitas crear un proyecto completo para un script de 50 líneas.
Ventaja 6: Compatibilidad total con el ecosistema existente
uv no te obliga a cambiar todo de inmediato. Puede:
- Leer e instalar desde
requirements.txt - Leer y generar
pyproject.tomlcon estándar PEP 621 - Instalar paquetes en ambientes creados con
venv - Funcionar con
setup.pyysetup.cfg
Esto significa que puedes adoptar uv gradualmente en proyectos existentes sin reescribir configuraciones.
Ventaja 7: Una sola herramienta en lugar de cuatro
Antes necesitabas:
pyenvpara gestionar versiones de Pythonvirtualenvovenvpara ambientes virtualespippara instalar paquetespip-toolspara bloquear dependencias
Ahora uv hace todo eso con comandos consistentes y documentación unificada. Menos herramientas significa menos puntos de fallo y menos tiempo configurando el entorno de desarrollo.
Migración desde pip: cuánto cuesta
Para la mayoría de los proyectos personales, la migración toma menos de 10 minutos:
- Instala
uv - Ejecuta
uv pip install -r requirements.txtsi quieres seguir usando el formato anterior - O ejecuta
uv initen un proyecto nuevo y empieza conpyproject.toml
La curva de aprendizaje es casi plana porque los comandos son intuitivos: uv add, uv remove, uv run, uv sync.
¿Deberías cambiar a uv?
Si trabajas solo en scripts pequeños y rara vez gestionas dependencias complejas, la diferencia no será dramática. Pero si:
- Trabajas en equipo
- Gestionas proyectos con muchas dependencias
- Pasas tiempo resolviendo conflictos de versiones
- Necesitas reproducir ambientes exactos en producción
Entonces uv no es solo una alternativa a pip. Es una mejora objetiva en velocidad, confiabilidad y simplicidad.
Aprender Python con las herramientas del futuro
En Crezendo enseñamos Python desde cero, y una de las primeras lecciones que damos es cómo gestionar tu entorno de trabajo profesionalmente. No enseñamos flujos obsoletos: nuestros estudiantes aprenden a usar herramientas modernas como uv, Ruff y Git desde el primer día.
Si estás empezando a programar o quieres actualizar tus habilidades, contar con un ambiente de desarrollo bien configurado marca la diferencia entre frustración y productividad. Y si no tienes computadora para practicar, escríbenos. A través de donaciones de equipos usados, ponemos laptops restauradas en manos de personas que quieren aprender exactamente esto.
La herramienta correcta no te hace mejor programador por sí sola, pero elimina la fricción que te impide concentrarte en lo que realmente importa: resolver problemas con código.