"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Dominar la gestión de proyectos Python con uv PartEs hora de deshacerse de la poesía

Dominar la gestión de proyectos Python con uv PartEs hora de deshacerse de la poesía

Publicado el 2024-11-04
Navegar:386

Mastering Python Project Management with uv PartIt

¿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.


Una pequeña historia de fondo

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.

El objetivo de la luz ultravioleta

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


1. Código portátil con metadatos de script en línea

Hablemos de dependencias

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 'requests



Generació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.py

Y 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 venv

Esto 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.9

El 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.


3. Bloquear versiones para mayor reproducibilidad

¿Alguna vez se rompió su código debido a las actualizaciones?

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!


4. Administrar versiones de Python

¿Diferentes proyectos, diferentes versiones de Python? ¡Ningún problema!

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.


5. Di adiós a las molestias

Es pip, pero más rápido y mejor

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.


6. Administre las herramientas CLI de forma global y sencilla

Desde negro hasta gorguera, obtenga sus herramientas sin complicaciones

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.

Declaración de liberación Este artículo se reproduce en: https://dev.to/thomas_bury_b1a50c1156cbf/mastering-python-project-management-with-uv-part1-its-time-to-ditch-poetry-3bi0?1 Si hay alguna infracción, por favor contacto Study_golang@163 .comeliminar
Último tutorial Más>

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