¿Estás cansado de hacer malabarismos con múltiples herramientas como pip, virtualenv, conda, poesía y pyenv solo para mantener tus entornos y dependencias de Python bajo control? ¡No estás solo! Administrar proyectos de Python puede parecer un dolor de cabeza, especialmente con todos los diferentes administradores de paquetes y herramientas con los que tienes que lidiar.
Ingrese uv — el Universal Virtualenv. Piense en ello como un administrador de paquetes integral diseñado para optimizar y acelerar su proceso de desarrollo de Python.
uv se inspira en Rye, otro administrador de empaque moderno, para unificar las mejores características de pip, pip-tools, pyenv, virtualenv y poesía. Construido con Rust, uv no solo es rápido sino también altamente eficiente, y simplifica todo, desde la gestión de dependencias hasta la creación de entornos virtuales.
En pocas palabras, uv se trata de consolidación. ¿Por qué cambiar entre varias herramientas cuando puedes tener una experiencia unificada? Su objetivo es eliminar la fricción del desarrollo de Python, ofreciéndole una forma más consistente y rápida de administrar sus proyectos. ¡Y además es increíblemente rápido! Que abre nuevas puertas, para una gestión dinámica
Una de las características más interesantes de uv es la capacidad de agregar dependencias directamente dentro de su secuencia de comandos Python. Imagina que tienes un script simple como este:
# app.py import requests from rich.pretty import pprint response = requests.get("https://peps.python.org/api/peps.json") data = response.json() pprint([(k, v["title"]) for k, v in data.items()][:10])
Ejecutar este script generalmente significa configurar un entorno virtual e instalar dependencias manualmente. Con uv, puedes incrustar todas tus dependencias directamente en el script, haciéndolo autónomo y compartible:
$ uv add --script app.py 'requestsGeneración automática de metadatos
Esto agrega metadatos al archivo de script:
# /// script # dependencies = [ # "requests¡Y listo! Puedes compartir este archivo con otra persona y esta simplemente puede ejecutar:
$ uv run app.pyY listo, ¡no se requiere configuración externa! Todo gracias a la velocidad y eficiencia de los rayos UV.
2. Creación y gestión de entornos virtuales
Introducción a los entornos virtuales
De forma predeterminada, uv requiere que los paquetes se instalen dentro de entornos virtuales para mantener su sistema limpio y evitar conflictos entre diferentes proyectos. Crear un entorno virtual con uv es sencillo:
$ uv venvEsto creará un directorio .venv que contiene el entorno aislado. Si desea especificar un directorio personalizado o una versión de Python, puede hacer:
$ uv venv my_env --python 3.9El entorno está listo para usar y uv lo detectará automáticamente para todos sus comandos, como instalar paquetes o ejecutar scripts.
Cuándo utilizar uv add frente a uv pip install
Utilice uv add: cuando desee agregar dependencias al archivo pyproject.toml de su proyecto. Esto es mejor cuando estás desarrollando un proyecto y deseas realizar un seguimiento de todas las dependencias, haciendo que el proyecto sea fácilmente compartible y reproducible. Cubriremos esto en la próxima publicación, ¡estad atentos!
$ uv add fastapi
Esto actualizará su pyproject.toml y bloqueará la versión en uv.lock.
Utilice uv pip install: cuando desee instalar paquetes para un uso rápido sin modificar el archivo del proyecto, o para herramientas globales donde no necesita rastrearlos en un pyproject.toml. Piense en uv pip como una instalación única e inmediata.
$ uv pip install requests
Elegir el comando correcto garantiza que su proyecto se administre correctamente y sea fácil de compartir o implementar.
Todos hemos pasado por eso: su código funciona hoy y luego falla mañana porque se actualiza un paquete. Con uv, puedes evitar esto bloqueando las versiones de los paquetes para garantizar la coherencia y la reproducibilidad:
[tool.uv] exclude-newer = "2023-10-16T00:00:00Z"
De esta manera, incluso si salen nuevas versiones de tus dependencias, tu proyecto permanece estable. ¡Perfecto para proyectos a largo plazo en los que no puedes permitirte sorpresas!
Muchos desarrolladores tienen que trabajar en múltiples proyectos que requieren diferentes versiones de Python. uv hace que cambiar de versión sea tan fácil como:
$ uv python install 3.8 3.9 3.10
Una vez instaladas las versiones, cambiar entre ellas es sencillo:
$ uv run --python 3.10 app.py
Y si deseas bloquear una versión específica para un proyecto:
$ uv python pin 3.9
No más malabarismos con los comandos pyenv: uv se encarga de todo el trabajo pesado por ti.
uv proporciona una experiencia similar a la de un pip pero con un rendimiento turboalimentado. Instalar paquetes es sencillo:
$ uv pip install flask
¿Necesitas agregar dependencias opcionales o instalarlas directamente desde un repositorio de GitHub? No preocuparse:
$ uv pip install 'torch>=1.10.0' "git https://github.com/astral-sh/ruff"
No más esperas para instalaciones lentas: uv hace el trabajo de manera rápida y efectiva.
Ya sea que estés programando código o formateando archivos, uv facilita la instalación de herramientas CLI:
A nivel mundial:
$ uv tool install ruff
Localmente dentro de un proyecto:
$ uv add ruff
Ejecutar comandos efímeros sin instalarlos globalmente:
$ uvx black my_code.py
Diga adiós a los conflictos de paquetes y a la contaminación ambiental: simplemente ejecute sus herramientas cuando y donde las necesite.
Si está buscando potenciar su desarrollo de Python y quiere dejar de luchar con múltiples herramientas, uv es su respuesta. Con sus comandos optimizados, entornos reproducibles y administración eficiente de paquetes, uv hace que el desarrollo de Python sea un placer en lugar de una tarea ardua.
¿Listo para probar los rayos ultravioleta? ? Comience hoy y experimente una mejor manera de administrar sus proyectos Python.
Estén atentos a la Parte 2, donde profundizaremos en funciones avanzadas como aprovechar pyproject.toml, manejar instalaciones de herramientas globales versus locales y cómo uv puede ser su mejor amigo al administrar entornos complejos.
¡Feliz codificación! ?✨
Para obtener más detalles y documentación completa, consulte la documentación uv.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3