Réinventer le workflow de développement Python avec uv
(youtube.com)Résumé de la vidéo "uv: Making Python Local Workflows FAST and BORING in 2025"
Cette vidéo est la deuxième partie consacrée à la manière d’utiliser l’outil de packaging Python uv pour rendre les workflows de développement local rapides et efficaces. Voici les points clés.
1. Utiliser les commandes essentielles de uv
uv run: exécute des commandes commepytestoufastapidans un environnement virtuel en utilisant les dépendances définies danspyproject.tomlet verrouillées dans le fichieruv.lock.uv add: ajoute une nouvelle dépendance àpyproject.tomlet met automatiquement à jour le fichieruv.lock.uv run --with: permet d’injecter temporairement des modules d’aide au développement commepdbppsans les ajouter aux dépendances principales du projet.uv lock --upgrade: met à jour le fichier de verrouillage des dépendances à très grande vitesse. Lors de l’exécution,uv rundétecte automatiquement les changements du fichier de verrouillage et synchronise l’environnement.
2. Standardiser le workflow avec just
uvn’intègre pas de fonctionnalité pour définir des commandes personnalisées commehatchoupdm.- La vidéo souligne les limites du
Makefile(dépendance à la plateforme, syntaxe non standard, etc.) et recommande fortement comme alternativejust, un exécuteur de commandes écrit en Rust. - Avec un
justfile, on peut standardiser sous forme de recettes les tâches répétitives suivantes.test: exécuter les tests (avec possibilité de transmettre des arguments)cov: vérifier la couverture de testserve: lancer le serveur de développementcheckall: exécuter en une seule fois tous les contrôles, comme le lint et la vérification de types
3. Intégration de just avec uv
- Fichier
.env:justpeut lire un fichier.envpour définir des variables d’environnement. Cela permet de construire un workflow flexible, par exemple en ajoutant dynamiquement des arguments--withàuv runou en changeant le port du serveur. uvx(uv tool run) : commande permettant d’exécuter des paquets PyPI indépendamment du projet, commepipx. Dans une recettejust, on peut ainsi utiliser des outils commehttpiesans les ajouter aux dépendances du projet.
4. Gérer directement l’environnement virtuel (workflow optionnel)
- Cette approche s’adresse aux développeurs qui préfèrent activer et utiliser l’environnement virtuel (
.venv) de façon traditionnelle, sans passer paruv run. uv sync: synchronise l’état du fichieruv.locket du dossier.venv. (installation des dépendances et suppression des paquets inutiles)direnv: outil shell qui exécute automatiquement un script.envrclorsqu’on entre dans un répertoire donné. On peut l’utiliser pour lancer automatiquementuv syncà l’entrée dans le répertoire et activer l’environnement virtuel.
Conclusion
En combinant la rapidité de uv avec des outils comme just et direnv, il devient possible d’automatiser et de standardiser la gestion des dépendances ainsi que l’exécution des commandes, afin que les développeurs puissent se concentrer davantage sur la logique métier. On obtient ainsi un environnement de développement « rapide et ennuyeux », c’est-à-dire très stable et prévisible.
4 commentaires
J’ai créé un template pour utiliser https://github.com/gracefullight/py-starter.
Avec poethepoet, on peut définir et utiliser des tâches dans
pyproject.toml, donc je l’utilise à la place de just.Merci.
Merci. https://poethepoet.natn.io/