Crear scripts independientes de Python con `uv`
(blog.dusktreader.dev)- Cómo usar
uven 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,IPythonyloguru, 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
uves 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 uvse 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 comentarioscriptde 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 tenganuv:./jam_users.py
Ventajas y casos de uso
- El enfoque con
uves 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.