Gestión moderna de dependencias Python con UV y pyproject
Clase 19 de 25 • Curso de Python: Entornos virtuales, PEP8 y Manejo de Errores
Resumen
Optimiza la instalación de dependencias en Python con una herramienta moderna, basada en Rust, que simplifica el uso de entornos virtuales, acelera la instalación desde PyPI y centraliza la configuración en pyproject. Diseñada por Astral, permite trabajar con los mismos comandos en macOS y Windows, mejorando la colaboración y el rendimiento.
¿Qué es V y por qué acelera la gestión de dependencias en Python?
V es una herramienta de Astral para instalar Python, crear entornos virtuales y gestionar dependencias con comandos simples. Al usar Rust bajo el capó, las instalaciones son notablemente más rápidas. Además, estandariza el uso de pyproject para definir dependencias y configura un entorno virtual llamado .vm que los editores de código detectan fácilmente.
- Compatible con macOS y Windows: mismos comandos en ambos sistemas operativos.
- Integración con pyproject: dependencias definidas en un único archivo.
- Mejor rendimiento: instalaciones más rápidas gracias a Rust.
- Flujo claro: comandos como help, init, add, remove y sync.
- Buenas prácticas: no subir la carpeta .vm al repositorio.
Ejecuta la instalación desde PyPI con pip.
pip install V
V help
¿Cómo iniciar un proyecto con V y pyproject?
El comando init crea la estructura base del proyecto y evita configuraciones manuales. Se generan tres archivos clave, incluyendo el estándar pyproject con una sección dependencies lista para usar.
V init
- Python version: define la versión de Python del proyecto para asegurar consistencia.
- readme: archivo inicial para documentación futura.
- pyproject: archivo central para dependencias y configuración del proyecto.
Para agregar una dependencia como ruff (formateador estilo PEP ocho), usa add. El sistema escribe la versión adecuada en pyproject y genera Vlock, que fija versiones exactas, incluyendo las transitivas, para evitar incompatibilidades.
V add ruff
Si aparece un warning por desajuste de entornos, es porque V crea y usa un entorno .vm por defecto. Conviene borrar el entorno anterior y, si la terminal sigue apuntando al viejo entorno, cerrarla y abrirla de nuevo para que el warning desaparezca.
¿Qué comandos de V optimizan el flujo de trabajo?
Una vez configurado el entorno .vm, el flujo diario se simplifica con comandos que actualizan pyproject, limpian dependencias no usadas y sincronizan el entorno virtual para alinearlo con la configuración declarada.
¿Cómo agregar o quitar dependencias con V add y V remove?
- Agrega paquetes y escríbelos en pyproject con su versión compatible.
- Genera o actualiza Vlock con bloqueos de versiones.
- Al eliminar, limpia dependencias transitivas que ya no se necesitan.
V add request
V remove requests
Claves a considerar: - pyproject se actualiza en cada operación. - Vlock asegura reproducibilidad del entorno. - El borrado es inteligente: quita lo innecesario automáticamente.
¿Cómo sincronizar el entorno con V sync?
- Alinea el entorno .vm con lo declarado en pyproject y Vlock.
- Útil tras borrar o agregar dependencias, o al cambiar de rama.
- Ideal para otros desarrolladores que descargan el proyecto y necesitan replicar el entorno exacto.
V sync
Consejos prácticos: - tras cambios de dependencias, ejecuta sync para evitar desajustes. - si quitaste una librería, sync removerá también su huella del entorno.
¿Cómo gestionar el entorno virtual .vm y evitar conflictos?
- Cada vez que usas V, se activa el entorno .vm automáticamente.
- Si ves un warning de entorno, cierra y abre la terminal para refrescarlo.
- No subas .vm al repositorio: es específico de tu sistema.
Buenas prácticas adicionales: - mantiene tu lista en pyproject como fuente de verdad. - si tienes un requirements TXT, compáralo con pyproject para evaluar rendimiento. - usa siempre los mismos comandos de V en macOS y Windows para facilitar el trabajo del equipo.
¿Te quedó alguna duda o quieres compartir tu experiencia con V, pyproject y el entorno .vm? Comenta y cuéntanos qué tal te fue con la instalación y el rendimiento.