2 puntos por GN⁺ 2025-01-29 | 1 comentarios | Compartir por WhatsApp
  • Creo muchos scripts de automatización en el directorio ~/bin/.
  • Desde que descubrí uv y los metadatos inline para scripts, empecé a usar más Python.
  • Como ~/bin está en el PATH, quiero ejecutar los scripts directamente desde la línea de comandos.
  • Para eso uso un shebang como este: #!/usr/bin/env -S uv run --script
  • La línea de comandos ahora ejecuta uv run --script y pasa el archivo como argumento.
  • uv ignora el shebang y ejecuta el resto del archivo como un archivo normal de Python.
  • Después de dar permisos de ejecución al script con el comando chmod a+x {filename}, ya puedo usar scripts simples de línea de comandos escritos en Python. Estos scripts manejan automáticamente sus dependencias.

1 comentarios

 
GN⁺ 2025-01-29
Opinión de Hacker News
  • El uso de la opción env -S permite pasar varios argumentos en la línea shebang

    • Rompe la idea generalizada de que en Linux la línea shebang solo puede pasar un único argumento
    • env -S es útil para separar y ejecutar los argumentos individualmente
  • Se mejora la forma de instalar herramientas CLI de Python usando uv

    • Se puede instalar fácilmente con un script curl | sh
    • Se crea un pequeño paquete de instalación en PyPI que depende de uv para instalar la herramienta CLI
    • Permite instalar en un entorno aislado sin necesidad de administrar un entorno virtual de Python
    • Se reducen los issues en GitHub causados por problemas complejos de dependencias
  • Se ideó una forma de ejecutar archivos Prolog desde el shell

    • Hace que un archivo Prolog también sea reconocido como archivo de shell para poder ejecutarlo
    • En el shell, la primera línea se trata como comentario para evitar errores
  • El artículo de Trey Hunner, "Lazy self-installing Python scripts with uv", ofrece más ejemplos y detalles

  • Se pueden escribir scripts para tareas pequeñas usando mise

    • Se presenta cómo ejecutar scripts de Python con uv
  • Administrar entornos de Python con uv run python resulta conveniente

    • Permite ejecutar un REPL dentro del entorno del proyecto sin necesidad de gestionar .venv
    • Resuelve problemas de instalación del sistema y permite ejecutar directamente dentro del proyecto o entorno
  • Hay algunos puntos a tener en cuenta al usar uv como ejecutor de comandos, pero en la mayoría de los casos ayuda a ahorrar tiempo

    • Existe una opción para resolver problemas de rutas al ejecutar archivos .py directamente
  • Los usuarios de TypeScript pueden hacer algo similar con Deno

    • Con deno run se pueden agregar flags de permisos
  • Se puede usar el gestor de paquetes Nix para administrar varios lenguajes y dependencias

    • Permite escribir scripts portables en un solo archivo