- uv es un instalador y resolvedor de paquetes de Python ultrarrápido escrito en Rust, diseñado para reemplazar los flujos de trabajo de
pipypip-tools - uv es un hito en el camino hacia un "Cargo para Python": un administrador integral de proyectos y paquetes de Python que sea rápido, confiable y fácil de usar
- Planean hacerse cargo del mantenimiento de Rye, la herramienta de empaquetado de Python desarrollada experimentalmente por Armin Ronacher, y expandir uv como su proyecto sucesor unificado
Enfoque obsesivo en el rendimiento
- uv es 8-10 veces más rápido que
pipypip-toolssin caché, y con caché es 80-115 veces más rápido. - Usa una caché global de módulos para no volver a descargar ni compilar dependencias, y aprovecha Copy-on-Write y enlaces duros en sistemas de archivos compatibles para minimizar el uso de espacio en disco.
Optimizado para la adopción
- La versión inicial de uv es compatible con las API de
pipypip-tools, por lo que puede usarse en proyectos existentes sin cambios de configuración. - uv se distribuye como un único binario estático y puede reemplazar
pip,pip-toolsyvirtualenv. - Puede instalarse por separado del propio Python, sin necesidad de gestionar instalaciones de
pipsegún la versión de Python.
"Cargo para Python": uv y Rye
- uv es un hito intermedio hacia un administrador unificado de paquetes y proyectos de Python que sea rápido, confiable y fácil de usar.
- El objetivo de uv es ser un único binario que incluya no solo
pip,pip-toolsyvirtualenv, sino tambiénpipx,tox,poetry,pyenv,ruffy más.
API compatible
- En lugar de
pip install, se puede usaruv pip installpara instalar dependencias de Python desde la línea de comandos, archivos de requisitos opyproject.toml. - En lugar de
pip-compile, se puede usaruv pip compilepara generar unrequirements.txtbloqueado. - En lugar de
pip-sync, se puede usaruv pip syncpara sincronizar unrequirements.txtbloqueado con el entorno virtual.
Hoja de ruta
- Después de este lanzamiento, planean priorizar el soporte a usuarios y enfocarse en mejorar la compatibilidad, el rendimiento y la estabilidad.
- Más adelante, el objetivo es expandir uv hasta convertirlo en un administrador completo de proyectos y paquetes de Python.
Agradecimientos
- Expresan su agradecimiento a todas las personas que contribuyeron directa o indirectamente al desarrollo de uv.
- En particular, agradecen a Jacob Finkelman y Matthieu Pizenberg, cuyo resolvedor base de versiones de PubGrub se usa en uv.
Opinión de GN⁺
- uv es una herramienta innovadora que ofrece a los desarrolladores de Python un rendimiento muy superior al de las herramientas tradicionales como
pip, lo que puede reducir significativamente el tiempo de configuración de proyectos. - Al estar escrita en Rust, refleja una nueva tendencia dentro del ecosistema de Python que prioriza el rendimiento y la estabilidad, y se espera que mejore mucho la experiencia de desarrollo.
- El desarrollo de uv apunta a la integración de herramientas de empaquetado y gestión de proyectos de Python, lo que permitiría a los desarrolladores trabajar de forma más eficiente y consistente.
3 comentarios
La velocidad es realmente impresionante;;
Ojalá se amplíe y pueda reemplazar a conda.
Opiniones en Hacker News
Dudas sobre un pip-and-more respaldado por capital de riesgo
Pregunta sobre la falta de soporte de uv para generar lockfiles independientes de la plataforma
Evaluación positiva del soporte de uv para estrategias alternativas de resolución de dependencias
--resolution=lowestpara probar con las versiones compatibles más bajas.--python-version.Dudas sobre la complejidad del sistema de paquetes de Python
Un punto interesante sobre el uso de pubgrub-rs por parte de uv
Mención de una predicción sobre el rumbo del equipo de Astral
Experiencia personal con la velocidad de pip
Postura escéptica ante un nuevo administrador de paquetes de Python
Curiosidad sobre la decisión de uv de generar archivos requirements.txt específicos por plataforma
requirements.txtespecíficos por plataforma, en lugar de producir archivospoetry.lockypdm.lockindependientes de la plataforma.Felicitaciones y reacción positiva al trabajo del equipo de Astral
Pregunta sobre los problemas de compilación de paquetes de pip