uv
es el nuevo administrador de proyectos escrito en Rust para python. ¿Por qué una nueva alternativa, habiendo tantas disponibles? Hace mucho empecé a usar pipenv
, el cual eventualmente se volvió inútil. Luego migré a poetry
que, además, usa mi empresa actual. Es una mejora, más no me termina de convencer.
Y es que no hay una solución definitiva en python a lo que quiere lograr uv
. Un cargo
para python.
poetry
no es un reemplazo de pypenv
. Por lo tanto, hay que seguir usando otras herramientas. Además, no es transparente.
He empezado a experimentar con uv
y puedo decir que ya puedo reemplazar, cuando menos, pyenv
. Tal vez podría usarlo en lugar de poetry
; no obstante, en mi actual empresa usamos poetry
y no creo que estemos listos para una migración.
¿Por qué creo que es una mejora? Con uv
puedo ejecutar uv run mi-script.py
y de manera automática utiliza un entorno virtual. No solo eso, puedo instalar paquetes para el archivo que son manejados dentro de comentarios. Por ejemplo: uv run --with rich example.py
. Las dependencias y el entorno virtual se maneja de manera transparente.
No está de más decir que es extremadamente rápido. Muy por encima de las opciones. No por nada está hecho en rust lo que, a su vez, ofrece otra ventaja: no dependemos de una instalación previa de python, que puede ser problemática. uv
es un binario que se instala y funciona sin problemas.
Empezaré a usarlo para manejar proyectos cada vez que pueda y como reemplazo de pip
por lo que espero seguir escribiendo al respecto.
¿Desventajas? He visto comentarios que hablan de desconfianza hacia astral
, la empresa detrás de uv
y de cómo se financiarán. Igualmente, no les agrada del todo que se construya en rust
y no en python
, lo que puede ser una dificultad. Yo, por mi parte, pienso que no son razones suficientes. Por un lado, la comunidad ha sido incapaz de entregar una solución totalmente satisfactoria. Por el otro, es software libre, y, en caso de algún movimiento no deseado por parte de astral
, se puede crear una bifurcación, aún si el costo de mantenimiento, en principio, es mayor por ser otro lenguaje.