5 puntos por GN⁺ 2025-03-31 | Aún no hay comentarios. | Compartir por WhatsApp
  • Cómo usar uv en scripts de Python para crear scripts independientes que se pueden ejecutar al instante sin instalar dependencias
  • Es un enfoque práctico surgido de una situación donde se usan scripts de Python para probar APIs en un proyecto de Go

Límites del método tradicional

  • Para ejecutar un script de Python que usa paquetes como httpx, IPython y loguru, había que elegir una de estas opciones
    • Instalar los paquetes directamente en el Python del sistema
    • Crear un entorno virtual, instalar los paquetes y luego ejecutar el script
  • Ambos métodos son engorrosos, pueden afectar el entorno del sistema y, al compartirlo con otras personas, hacen que la explicación sea más larga

Ejecutar scripts fácilmente con uv

  • uv es un gestor de paquetes de Python y una herramienta que reemplaza a pip, y permite ejecutar scripts de Python en un entorno de ejecución aislado
  • Mediante el comentario # /// script, se puede declarar la información de dependencias dentro del propio script
    # /// script  
    # dependencies = ["ipython", "httpx", "loguru"]  
    # ///  
    
  • Un script con esa configuración se puede ejecutar con el siguiente comando:
    uv run jam_users.py  
    
  • uv se encarga automáticamente de crear un entorno virtual temporal, instalar los paquetes necesarios y ejecutar el script, todo en una sola vez

Convertirlo en un script ejecutable

  • Se puede hacer ejecutable como un script normal de Python usando #!/usr/bin/env python, pero ese método no reconoce el comentario script de uv
  • En su lugar, esto se puede resolver poniendo directamente el comando de uv en el shebang, así:
    #!/usr/bin/env -S uv run --script  
    # /// script  
    # dependencies = ["ipython", "httpx", "loguru"]  
    # ///  
    
  • Con este método, después de chmod +x, se puede ejecutar directamente y también funciona igual en otros sistemas Unix siempre que tengan uv:
    ./jam_users.py  
    

Ventajas y casos de uso

  • El enfoque con uv es muy útil para pasar scripts a otras personas
  • Sin configuraciones previas complejas, se preparan automáticamente los paquetes y el entorno necesarios
  • No contamina el Python del sistema ni el entorno global
  • Con un solo script se resuelven tanto la ejecución como la gestión de dependencias

El autor explica que antes le resultaba complicado dar instrucciones de instalación al compartir scripts de Python con otras personas, pero que ahora puede resolver ese problema fácilmente con uv

  • Es efectivo no solo para pequeños scripts de prueba, sino también para scripts de automatización de uso profesional

Aún no hay comentarios.

Aún no hay comentarios.