⏱️ Lectura: 7 min

Si escribís Python, lo más probable es que hayas pasado años frustrándote con pip install lento, virtualenv raro, poetry pesado y pyenv cruzando cables entre versiones. uv, el gestor de paquetes Python de Astral escrito en Rust, los reemplaza a todos desde un único binario. Y en benchmarks reales es entre 10 y 100 veces más rápido que pip.

📑 En este artículo
  1. Qué es uv y por qué importa
  2. Por qué es tan rápido
  3. Instalación de uv en los tres sistemas operativos
    1. Windows
    2. macOS
    3. Linux
    4. Instalación vía pip (cualquier SO)
  4. Uso básico: tu primer proyecto con uv
  5. Benchmarks reales de 2026
  6. ¿Deberías migrar? Estrategia recomendada
  7. Preguntas frecuentes
    1. ¿uv reemplaza a conda?
    2. ¿Puedo usar uv en un Dockerfile?
    3. ¿uv soporta Python 2?
    4. ¿El lockfile de uv es compatible con poetry o pip-tools?
    5. ¿Es seguro usar uv en producción?
  8. Referencias

En esta guía te cuento qué es uv, por qué es tan rápido, cómo instalarlo en Windows, macOS y Linux, y cómo migrar tu flujo de trabajo actual sin romper nada.

Qué es uv y por qué importa

uv es un gestor de paquetes Python unificado, creado por Astral (los mismos detrás de Ruff). Su propuesta es simple: reemplazar una docena de herramientas fragmentadas por un solo ejecutable rápido y consistente.

Concretamente, uv reemplaza a:

  • pip y pip-toolsinstalación y compilación de dependencias.
  • pipx — ejecución de herramientas aisladas.
  • poetry — gestión de proyectos con pyproject.toml.
  • pyenv — instalación y cambio de versiones de Python.
  • virtualenv / venv — creación de entornos virtuales.
  • twine — publicación de paquetes a PyPI.

Lo importante no es el reemplazo en sí: es que por primera vez en años el empaquetado Python funciona como funciona Cargo en Rust o npm en Node — con una sola herramienta coherente y rápida.

Por qué es tan rápido

La velocidad de uv no es un truco de marketing. Viene de decisiones arquitectónicas concretas:

  • Escrito en Rust — no arranca un intérprete Python para cada operación, como sí hace pip.
  • Paralelismo real — descarga, resuelve e instala dependencias en paralelo aprovechando todos los núcleos.
  • Cache global compartido — una sola copia de cada paquete en disco, reutilizada por todos los proyectos del sistema. Menos IO, menos espacio.
  • Resolver PubGrub — algoritmo moderno de resolución de dependencias, más eficiente que el backtracking tradicional.
  • Sin archivos temporales innecesarios — la instalación es casi una operación de copia o hardlink desde el cache.

Instalación de uv en los tres sistemas operativos

uv provee instaladores standalone para Windows, macOS y Linux. Elegí el que más te convenga.

Windows

Abrí una terminal de PowerShell y ejecutá:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Alternativamente, si usás Scoop o winget:

# Scoop
scoop install uv

# winget
winget install --id=astral-sh.uv -e

macOS

Si usás Homebrew (lo más recomendado):

brew install uv

O con el instalador oficial:

curl -LsSf https://astral.sh/uv/install.sh | sh

Linux

El instalador oficial funciona en cualquier distro:

curl -LsSf https://astral.sh/uv/install.sh | sh

En Arch Linux, también está disponible via pacman:

sudo pacman -S uv

Instalación vía pip (cualquier SO)

Si ya tenés Python y pip funcionando, podés instalar uv con:

pip install uv

Aunque pierde gracia instalar un reemplazo de pip con pip, funciona. Después de instalar, verificá con:

uv --version

Uso básico: tu primer proyecto con uv

Los comandos siguientes funcionan idénticos en Windows, macOS y Linux. Este es el flujo completo de un proyecto nuevo:

# Crear un proyecto nuevo
uv init mi-proyecto
cd mi-proyecto

# Agregar dependencias (equivalente a pip install + actualizar pyproject.toml)
uv add requests pandas

# Agregar una dependencia solo de desarrollo
uv add --dev pytest ruff

# Correr un script dentro del entorno del proyecto
uv run python main.py

# Instalar una versión específica de Python (reemplaza pyenv)
uv python install 3.12

# Ejecutar herramientas sin instalarlas (reemplaza pipx)
uv tool run ruff check .

# Actualizar todas las dependencias
uv lock --upgrade

# Sincronizar el entorno con el lockfile
uv sync

uv crea automáticamente:

  • Un pyproject.toml estándar (compatible con poetry/pip-tools).
  • Un uv.lock universal, reproducible entre sistemas operativos y arquitecturas.
  • Un entorno virtual .venv en la raíz del proyecto.

No necesitás activar manualmente el venv: uv run siempre ejecuta en el entorno correcto.

Benchmarks reales de 2026

Los números oficiales de Astral son contundentes y han sido verificados por terceros:

  • Entre 8x y 10x más rápido que pip y pip-tools sin cache.
  • Entre 80x y 115x más rápido con cache caliente — el caso típico al recrear un venv o actualizar deps.
  • Crear un entorno virtual es 80x más rápido que python -m venv y 7x más rápido que virtualenv.
  • En equipos con CI/CD, uv reduce el tiempo total del pipeline entre 50% y 80%.

En un proyecto mediano (50 dependencias), instalar desde cero con pip puede tomar 30-60 segundos. Con uv y cache caliente, son menos de 2 segundos. La diferencia se nota sobre todo en CI/CD, donde esos segundos se multiplican por cada build.

¿Deberías migrar? Estrategia recomendada

uv fue diseñado para convivir con el ecosistema existente, no para forzar una migración big-bang. Recomiendo este orden:

  1. Proyectos nuevos — empezá directamente con uv init. No hay razón para usar pip en 2026 si arrancás de cero.
  2. Proyectos con requirements.txt — uv lo lee directamente con uv pip install -r requirements.txt. Migración de cero esfuerzo.
  3. Proyectos con poetry — el pyproject.toml es compatible. Podés generar un uv.lock con uv lock sin tocar la configuración.
  4. Docker y CI/CD — aquí ganás más tiempo. Reemplazá la instalación de deps en tu Dockerfile o pipeline de GitHub Actions por uv sync --frozen.

📖 Resumen en Telegram: Ver resumen

Preguntas frecuentes

¿uv reemplaza a conda?

No del todo. conda gestiona también paquetes binarios no-Python (librerías de C, R, etc.) y canales como conda-forge. uv solo gestiona Python y paquetes de PyPI. Si dependés de conda para entornos científicos con CUDA o librerías nativas, mantenelo. Si solo gestionás Python puro, uv es superior.

¿Puedo usar uv en un Dockerfile?

Sí, y es uno de los casos donde más se nota la ganancia. Astral publica imágenes oficiales (ghcr.io/astral-sh/uv) y existe una imagen minimal con solo el binario. Un uv sync --frozen dentro del build reduce drásticamente el tiempo de construcción.

¿uv soporta Python 2?

No. uv solo soporta Python 3.8 y superiores, alineado con las versiones activas upstream. Si todavía tenés código en Python 2, la prioridad es migrarlo, no cambiar el gestor de paquetes.

¿El lockfile de uv es compatible con poetry o pip-tools?

No directamente. uv.lock es un formato propio, más rico y reproducible entre sistemas operativos. Sin embargo, uv puede generar requirements.txt con uv export para interoperar con herramientas que esperen ese formato.

¿Es seguro usar uv en producción?

uv es estable desde 2025. Empresas grandes (incluida la propia Astral) lo usan en producción y CI/CD. El código es open-source (Apache 2.0) y el desarrollo es muy activo. Es probablemente el proyecto de Python más vivo del 2026.

Referencias

📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.


0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.