uv - Un package manager Python rapide et pragmatique
Si tu veux un workflow Python simple et reproductible, uv est un candidat sérieux. Il remplace plusieurs briques à la fois :
- installation de dépendances (pip)
- gestion d’environnements (venv)
- lockfile reproductible
L’outil est développé par Astral (Ruff), écrit en Rust, et vise un usage “standard Python” sans trop de magie.
Workflow minimal
1) Créer un projet
uv init
Tu obtiens un pyproject.toml de base.
2) Ajouter une dépendance
uv add fastapi
Mise à jour du pyproject.toml et génération du uv.lock.
3) Lancer un script
uv run python main.py
Pas besoin d’activer le venv à la main : uv gère l’environnement pour toi.
Ce qui compte techniquement
Voici les points techniques qui expliquent le comportement d’uv :
- Resolver rapide : résolution des contraintes efficace avec un graphe de dépendances propre.
- Cache de wheels : réutilisation des wheels déjà téléchargées pour éviter les I/O inutiles.
- Build PEP 517 : usage des standards modernes pour construire les packages.
- Lockfile reproductible :
uv.lockcontient versions et hashes, indispensable pour la CI/CD. - Exécution isolée :
uv runutilise automatiquement le venv lié au projet.
On aime ça les benchmarks, alors voici une comparaison rapide d’installation avec un nouvel env virtuel et un warm cache:

Tu peux retrouver plus de benchmarks sur le repo git de uv: Benchmarks
Mais Poetry, c’est pas mieux ?
Poetry est très bon, surtout si tu veux un outil “tout-en-un” : gestion des dépendances, lockfile, publication de packages, scripts, etc. Mais il ajoute aussi une couche d’abstraction et peut être plus lent sur des projets lourds.
En pratique :
- Poetry si tu publies des packages et veux un workflow complet clé en main.
- uv si tu veux rester proche du standard Python, avec un resolver rapide et un workflow simple.
Les deux sont solides. La vraie différence, c’est le niveau d’abstraction et ce que tu attends de l’outil.
Migrer un projet existant
uv add -r requirements.txt
uv lit ton requirements, installe les dépendances, et génère un lockfile propre.
En résumé
Résumons uv en 3 points :
- Outil complet : remplace
pip,venvet les lockfiles classiques. - Performance : resolver rapide, cache intelligent, moins d’I/O.
- Pragmatique :
pyproject.tomlstandard, pas de magie, compatible avec l’écosystème Python.
Si tu cherches une alternative à Poetry ou à la stack pip + venv + pip-tools, ça vaut le coup de tester.
Commence par un projet perso pour voir si ça te convient, puis envisage une adoption plus large si c’est concluant. Et si tu as essayé, n’hésite pas à me partager ton avis !