Créer des scripts Python autonomes avec `uv`
(blog.dusktreader.dev)- Comment utiliser
uvdans 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,IPythonouloguru, 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
uvest 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
# /// scriptpermet 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 uvse 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 commentairescriptdeuv - On peut à la place résoudre le problème en mettant directement la commande
uvdans 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 queuvy est installé :./jam_users.py
Avantages et cas d’usage
- Cette approche avec
uvest 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.