5 points par GN⁺ 2025-03-31 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Comment utiliser uv dans un script Python pour créer un script autonome exécutable immédiatement, sans installation préalable des dépendances
  • Une approche pratique née d’un cas d’usage où des scripts Python servaient à tester des API dans un projet Go

Limites de la méthode classique

  • Pour exécuter un script Python utilisant des paquets comme httpx, IPython ou loguru, il fallait auparavant choisir l’une des options suivantes
    • installer directement les paquets dans le Python du système
    • créer un environnement virtuel, y installer les paquets, puis lancer le script
  • Ces deux méthodes sont contraignantes, peuvent affecter l’environnement système et rendent le partage avec d’autres plus long à expliquer

Exécuter simplement un script avec uv

  • uv est un gestionnaire de paquets Python et un remplaçant de pip qui permet d’exécuter des scripts Python dans un environnement d’exécution isolé
  • Le commentaire # /// script permet de déclarer les dépendances directement dans le script
    # /// script  
    # dependencies = ["ipython", "httpx", "loguru"]  
    # ///  
    
  • Un script contenant cette configuration peut être exécuté avec la commande suivante :
    uv run jam_users.py  
    
  • uv se charge automatiquement de créer un environnement virtuel temporaire, d’installer les paquets nécessaires, puis d’exécuter le script, le tout en une seule étape

En faire un script directement exécutable

  • Il est possible de rendre le script exécutable comme un script Python classique avec #!/usr/bin/env python, mais cette méthode ne reconnaît pas le commentaire script de uv
  • On peut à la place résoudre le problème en mettant directement la commande uv dans le shebang, comme ceci
    #!/usr/bin/env -S uv run --script  
    # /// script  
    # dependencies = ["ipython", "httpx", "loguru"]  
    # ///  
    
  • Après un chmod +x, ce script peut être lancé directement et fonctionnera tel quel sur d’autres systèmes Unix tant que uv y est installé :
    ./jam_users.py  
    

Avantages et cas d’usage

  • Cette approche avec uv est très utile lorsqu’on doit transmettre un script à quelqu’un d’autre
  • Les paquets nécessaires et l’environnement sont configurés automatiquement, sans préparation complexe
  • Elle évite de polluer le Python système ou l’environnement global
  • Un seul script suffit pour l’exécution et la gestion des dépendances

L’auteur explique qu’autrefois, transmettre un script Python à d’autres impliquait souvent des consignes d’installation compliquées, mais qu’avec uv, ce problème se résout désormais très simplement

  • Cette méthode est efficace non seulement pour de petits scripts de test, mais aussi pour des scripts d’automatisation utilisés en production

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.