Resumen del video "uv: Making Python Local Workflows FAST and BORING in 2025"
Este video es la segunda parte sobre cómo usar la herramienta de empaquetado de Python uv para hacer que el flujo de trabajo de desarrollo local sea rápido y eficiente. Los puntos principales son los siguientes.
1. Uso de los comandos clave de uv
uv run: ejecuta comandos comopytestofastapidentro de un entorno virtual usando las dependencias definidas enpyproject.tomly fijadas en el archivouv.lock.uv add: agrega una nueva dependencia apyproject.tomly actualiza automáticamente el archivouv.lock.uv run --with: permite inyectar temporalmente módulos auxiliares de desarrollo comopdbppsin agregarlos a las dependencias principales del proyecto.uv lock --upgrade: actualiza el archivo de bloqueo de dependencias a gran velocidad.uv rundetecta automáticamente los cambios en el archivo de bloqueo al ejecutarse y sincroniza el entorno.
2. Estandarización del flujo de trabajo con just
uvno incluye de forma nativa una función para definir comandos personalizados como sí lo hacenhatchopdm.- En el video se señalan las desventajas de
Makefile(dependencia de la plataforma, sintaxis no estándar, etc.) y se recomienda fuertemente como alternativa el ejecutor de comandos escrito en Rust,just. - Con un
justfilese estandarizan como recetas tareas repetitivas como las siguientes.test: ejecutar pruebas (con posibilidad de pasar argumentos)cov: revisar la cobertura de pruebasserve: iniciar el servidor de desarrollocheckall: ejecutar de una sola vez todas las verificaciones, como lint y comprobación de tipos
3. Integración entre just y uv
- Archivo
.env:justpuede leer un archivo.envpara configurar variables de entorno. Con esto es posible, por ejemplo, añadir dinámicamente el argumento--withauv runo cambiar el puerto del servidor, lo que permite construir flujos de trabajo flexibles. uvx(uv tool run): es un comando que ejecuta paquetes de PyPI de forma independiente al proyecto, similar apipx. Dentro de recetas dejust, permite usar herramientas comohttpiesin agregarlas a las dependencias del proyecto.
4. Gestión directa del entorno virtual (flujo de trabajo opcional)
- Es un método pensado para desarrolladores que prefieren activar y usar el entorno virtual (
.venv) de la forma tradicional, sin pasar poruv run. uv sync: sincroniza el estado del archivouv.locky la carpeta.venv. (instala dependencias y elimina paquetes innecesarios)direnv: es una herramienta de shell que ejecuta automáticamente el script.envrcal entrar en un directorio específico. Esto permite ejecutaruv syncautomáticamente al entrar al directorio y activar el entorno virtual.
Conclusión
Al combinar la velocidad de uv con herramientas como just y direnv, es posible automatizar y estandarizar la gestión de dependencias y la ejecución de comandos para que los desarrolladores puedan concentrarse más en la lógica principal y construir un entorno de desarrollo "rápido y aburrido", es decir, muy estable y predecible.
4 comentarios
Estoy usando https://github.com/gracefullight/py-starter, así que dejé preparada una plantilla.
Con
poethepoet, puedes definir tareas dentro depyproject.toml, así que yo lo uso en lugar dejust.Gracias.
Gracias. https://poethepoet.natn.io/