2 points par GN⁺ 2025-01-29 | 1 commentaires | Partager sur WhatsApp
  • Je crée beaucoup de scripts d’automatisation dans le répertoire ~/bin/.
  • Depuis que j’ai découvert uv et les métadonnées de script inline, j’utilise davantage Python.
  • Comme ~/bin est dans le chemin, je veux exécuter les scripts directement depuis la ligne de commande.
  • Pour cela, j’utilise le shebang suivant : #!/usr/bin/env -S uv run --script
  • La ligne de commande exécute alors uv run --script et transmet le fichier en argument.
  • uv ignore le shebang et exécute le reste du fichier comme un fichier Python normal.
  • Après avoir donné au script les droits d’exécution avec la commande chmod a+x {filename}, il devient possible d’utiliser de simples scripts en ligne de commande écrits en Python. Ces scripts gèrent automatiquement leurs dépendances.

1 commentaires

 
GN⁺ 2025-01-29
Commentaire Hacker News
  • L’option env -S permet de transmettre plusieurs arguments dans une ligne shebang

    • Cela remet en cause l’idée répandue selon laquelle une ligne shebang sous Linux ne peut transmettre qu’un seul argument
    • env -S est utile pour séparer et exécuter les arguments individuellement
  • La méthode d’installation d’outils CLI Python avec uv a été améliorée

    • Une installation simple devient possible via un script curl | sh
    • Un petit paquet d’installation dépendant de uv est créé sur PyPI pour installer l’outil CLI
    • Cela permet une installation dans un environnement isolé sans avoir à gérer un environnement virtuel Python
    • Le nombre d’issues GitHub liées à des problèmes de dépendances complexes diminue
  • Une méthode a été imaginée pour exécuter des fichiers Prolog depuis le shell

    • Le fichier Prolog peut aussi être reconnu comme un fichier shell afin d’être exécutable
    • Le shell traite la première ligne comme un commentaire pour éviter les erreurs
  • L’article de Trey Hunner, "Lazy self-installing Python scripts with uv", fournit davantage d’exemples et de détails

  • mise permet d’écrire des scripts pour de petites tâches

    • Il présente une manière d’exécuter des scripts Python avec uv
  • Gérer un environnement Python avec uv run python est pratique

    • Il est possible de lancer un REPL dans l’environnement du projet sans avoir à gérer .venv
    • Cela résout les problèmes liés aux installations système et permet une exécution directe dans le projet ou l’environnement
  • Lorsqu’on utilise uv comme exécuteur de commandes, il y a quelques points d’attention, mais dans la plupart des cas cela fait gagner du temps

    • Il existe une option pour résoudre les problèmes de chemin lors de l’exécution directe de fichiers .py
  • Les utilisateurs de TypeScript peuvent faire quelque chose de similaire avec Deno

    • deno run permet d’ajouter des flags de permission
  • Le gestionnaire de paquets Nix permet de gérer plusieurs langages et dépendances

    • Il est possible d’écrire des scripts portables dans un seul fichier