J’ai découvert uv en février 2025. En mars, pip n’existait plus chez moi.
Avant, gérer les dépendances Python c’était pip + pip-tools + virtualenv + un fichier texte pour se souvenir de la commande d’activation. Trop de pièces mobiles pour un truc qui devrait être simple. (Quant à poetry, j’ai jamais passé le pas)
uv pip install est 10 à 100× plus rapide que pip. uv venv crée un virtualenv en moins d’une seconde. Et uv pip compile remplace pip-tools sans avoir à installer quoi que ce soit. Tout est dans un seul binaire.
Le piège : si on fait encore pip install par réflexe dans un projet géré avec uv sync, on casse le lock file. La mémoire musculaire met une semaine à s’adapter à uv pip install.
Et pour aller encore plus vite ? uv sync tout court pour faire l’équivalent de uv pip install + uv venv, pas besoin de sourcer .venv/bin/activate tant qu’on préfixe les appels avec uv (ex: uv run app:main )
Ce que j’utilise au quotidien
| Commande uv | Équivalent pip | Usage |
|---|---|---|
uv venv | python -m venv | Créer un virtualenv |
uv add | Installer un paquet | |
uv lock | Générer un uv.lock | |
uv sync | pip install | Synchroniser l’env avec le lock file |
uv tool install | pipx install | Installer un outil CLI global |
uvx ruff | pipx run ruff | Lancer un outil sans l’installer |