Hoy en día, los proyectos de ciencia de datos no terminan con la prueba de concepto; Cada proyecto tiene el objetivo de ser utilizado en la producción. Es importante, por lo tanto, entregar un código de alta calidad. He estado trabajando como científico de datos durante más de diez años y he notado que los jóvenes generalmente tienen un nivel débil en el desarrollo, lo cual es comprensible, porque para ser un científico de datos necesita dominar las matemáticas, estadísticas, algoritmias, desarrollo y tener conocimiento en el desarrollo operativo. En esta serie de artículos, me gustaría compartir algunos consejos y buenas prácticas para administrar un proyecto profesional de ciencia de datos en Python. Desde Python hasta Docker, con un desvío a GIT, presentaré las herramientas que uso todos los días.
El otro día, un colega me dijo cómo tenía que reinstalar Linux debido a una manipulación incorrecta con Python. Había restaurado un antiguo proyecto que quería personalizar. Como resultado de instalar y desinstalar paquetes y cambiar versiones, su entorno Python basado en Linux ya no era funcional: un incidente que fácilmente podría haberse evitado configurando un entorno virtual. Pero muestra lo importante que es administrar estos entornos. Afortunadamente, ahora hay una excelente herramienta para esto: uva.
El origen de estas dos letras no está claro. Según Zanie Blue (uno de los creadores):
“Consideramos un tonelada de nombres: es realmente difícil elegir un nombre sin colisiones este día, por lo que cada nombre fue un balance de compensaciones. Nos dio a UV en Pypi, es astral (es decir, ultravioleta o universal), y es corto y fácil de escribir. “
Ahora, entremos en un poco más de detalle sobre esta maravillosa herramienta.
Introducción
UV es un gerente moderno y minimalista de proyectos y paquetes de Python. Desarrollado completamente en óxido, ha sido diseñado para simplificar Gestión de dependenciaCreación de entorno virtual y organización de proyectos. UV ha sido diseñado para limitar los problemas comunes del proyecto Python, como los conflictos de dependencia y la gestión del medio ambiente. Su objetivo es ofrecer una experiencia más suave e intuitiva que las herramientas tradicionales, como el combo PIP + VirtualEnv o el administrador de Conda. Se afirma que es de 10 a 100 veces más rápido que los manejadores tradicionales.
Ya sea para pequeños proyectos personales o en desarrollo Pitón Aplicaciones para la producción, UV es una solución robusta y eficiente para la gestión de paquetes.
Comenzando con UV
Instalación
Para instalar UV, si está utilizando Windows, le recomiendo usar este comando en un shell:
winget install --id=astral-sh.uv -e
Y, si está en Mac o Linux, use el comando:
Para verificar la instalación correcta, simplemente escriba en un terminal el siguiente comando:
uv version
Creación de un nuevo proyecto de Python
Usando UV, puede crear un nuevo proyecto especificando la versión de Python. Para comenzar un nuevo proyecto, simplemente escriba en una terminal:
uv init --python x:xx project_name
python x:xx debe ser reemplazado por la versión deseada (por ejemplo python 3.12). Si no tiene la versión de Python especificada, UV se encargará de esto y descargará la versión correcta para iniciar el proyecto.
Este comando crea e inicializa automáticamente un repositorio de git llamado proyecto_name. Contiene varios archivos:
- A
.gitignorearchivo. Enumera los elementos del repositorio que se ignorarán en el Versión Git (es básico y debe reescribir para un proyecto listo para implementar). - A
.python-versionarchivo. Indica la versión de Python utilizada en el proyecto. - El
README.mdarchivo. Tiene el propósito de describir el proyecto y explica cómo usarlo. - A
hello.pyarchivo. - El
pyproject.tomlarchivo. Este archivo contiene toda la información sobre las herramientas utilizadas para crear el proyecto. - El
uv.lockarchivo. Se utiliza para crear el entorno virtual cuando usa UV para ejecutar el script (se puede comparar con el requirements.txt)
Instalación de paquetes
Para instalar nuevos paquetes en este próximo entorno, debe usar:
uv add package_name
Cuando el agregar El comando se usa por primera vez, UV crea un nuevo entorno virtual en el directorio de trabajo actual e instala las dependencias especificadas. Aparece un directorio .venv/. En las ejecuciones posteriores, UV utilizará el entorno virtual existente e instalará o actualizará solo los nuevos paquetes solicitados. Además, UV tiene un poderoso resolución de dependencia. Al ejecutar el agregar Comando, UV analiza todo el gráfico de dependencia para encontrar un conjunto compatible de versiones de paquetes que cumplan con todos los requisitos (versión del paquete y versión de Python). Finalmente, UV actualiza los archivos PyProject.Toml y UV.Lock después de cada uno agregar dominio.
Para desinstalar un paquete, escriba el comando:
uv remove package_name
Es muy importante limpiar el paquete no utilizado de su entorno. Debe mantener el archivo de dependencia lo más mínimo posible. Si no se usa un paquete o ya no se usa, debe eliminarse.
Ejecutar un guión de Python
Ahora, se inicia su repositorio, sus paquetes están instalados y su código está listo para ser probado. Puede activar El entorno virtual creado como de costumbre, pero es más eficiente usar el comando UV run:
uv run hello.py
El uso del comando Ejecutar garantiza que el script se ejecutará en el entorno virtual del proyecto.
Administre las versiones de Python
Por lo general, se recomienda usar diferentes versiones de Python. Como se mencionó antes de la introducción, puede estar trabajando en un proyecto antiguo que requiere una vieja versión de Python. Y a menudo será demasiado difícil actualizar la versión.
uv python list
En cualquier momento, es posible cambiar la versión de Python de su proyecto. Para hacer eso, tienes que modificar la línea requiere python en el pyproject.toml archivo.
Por ejemplo: Requiere-Python = “> = 3.9”
Luego debe sincronizar su entorno utilizando el comando:
uv sync
El comando primero verifica las instalaciones existentes de Python. Si no se encuentra la versión solicitada, UV descarga e instala. UV también crea un nuevo entorno virtual en el directorio del proyecto, reemplazando el anterior.
Pero el nuevo entorno no tiene el paquete requerido. Por lo tanto, después de un comando de sincronización, debe escribir:
uv pip install -e .
Cambiar de virtualenv a UV
Si tiene un proyecto de Python iniciado con PIP y VirtualEnv y desea usar UV, nada podría ser más simple. Si no hay requisitos Archivo, debe activar su entorno virtual y luego recuperar el paquete + versión instalada.
pip freeze > requirements.txt
Luego, debe iniciar el proyecto con UV e instalar las dependencias:
uv init .
uv pip install -r requirements.txt

Use las herramientas
UV ofrece la posibilidad de usar herramientas a través del herramienta UV dominio. Las herramientas son paquetes de Python que proporcionan interfaces de comandos para fallar, pytests, mypyetc. Para instalar una herramienta, escriba la línea de comando:
uv tool install tool_name
Pero, se puede usar una herramienta sin haber sido instalada:
uv tool run tool_name
Por conveniencia, se creó un alias: UVXque es equivalente a Herramienta UV Ejecutar. Entonces, para ejecutar una herramienta, solo escriba:
uvx tool_name
Conclusión
UV es un administrador de paquetes de Python potente y eficiente diseñado para proporcionar una resolución e instalación de dependencia rápida. Supera significativamente las herramientas tradicionales como pepita o condena, Haciendo que sea una excelente opción para administrar sus proyectos de Python.
Ya sea que esté trabajando en scripts pequeños o grandes proyectos, le recomiendo que tenga el hábito de usar UV. Y créeme, probarlo significa adoptarlo.
Referencias
1 – Documentación UV: https://docs.astral.sh/uv/
2 – Repositorio UV Github: https://github.com/astral-sh/uv
3 – Un excelente artículo de Datacamp: https://www.datacamp.com/tutorial/python-uv