uv : un seul outil pour remplacer pip, venv, Poetry et pyenv

uv : un seul outil pour remplacer pip, venv, Poetry et pyenv

De quoi avez-vous besoin

Version de Python

3.x

Packages

  • {"nom": "uv", "version": "0.6+"}

Difficulté

Débutant

pip, venv, Poetry, pyenv, pipx... chaque projet Python te force à jongler entre une demi-douzaine d'outils qui se marchent dessus. Résultat : des environnements cassés, des dépendances qui s'entrechoquent, et des requirements.txt qui prennent la poussière dans un coin du repo. uv est le gestionnaire tout-en-un écrit en Rust par Astral, les créateurs de Ruff. Il remplace tout ça avec un seul binaire, et il est dix à cent fois plus rapide que pip. Voici comment t'en servir, en sept étapes.

1. Installer uv en trente secondes

Le plus simple, c'est le script d'installation officiel. Sur Linux et macOS :

bash
curl -LsSf https://astral.sh/uv/install.sh | sh

Sur Windows, ouvre PowerShell et tape :

bash
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Tu peux aussi passer par pip si tu préfères, avec pip install uv, ou par brew install uv sur macOS. Vérifie que tout roule avec un uv --version.

2. Créer un projet en une commande

Pas besoin de créer un dossier à la main, de lancer python -m venv puis d'activer l'environnement à chaque session. Une seule commande suffit :

bash
uv init mon-projet
cd mon-projet

uv init génère trois choses : un fichier pyproject.toml, un main.py d'exemple et un fichier .python-version. Le pyproject.toml devient ton unique fichier de configuration, fini le trio requirements.txt, setup.py et setup.cfg.

3. Ajouter des dépendances

Ajouter une librairie revient à la nommer. uv add installe la dépendance et la note dans ton pyproject.toml en même temps :

bash
uv add requests rich

uv résout les versions, télécharge les paquets et crée l'environnement virtuel .venv au passage. Pour une dépendance réservée au développement, comme les tests ou le linter, ajoute l'option --dev :

bash
uv add --dev pytest ruff

Et pour retirer un paquet, c'est aussi simple : uv remove requests.

4. Lancer ton script sans activer d'environnement

C'est ici que uv montre sa vraie force. La commande uv run exécute ton script dans le bon environnement, automatiquement, sans que tu aies à activer quoi que ce soit. Remplace le contenu de main.py par :

python
import requests

rep = requests.get("https://api.github.com/repos/astral-sh/uv")
data = rep.json()

print(f"{data['full_name']} : {data['stargazers_count']} étoiles")

Puis lance :

bash
uv run main.py

Si le module n'est pas encore installé, uv le récupère à la volée. Le même principe fonctionne pour n'importe quelle commande : uv run pytest, uv run ruff check ., et ainsi de suite.

5. Gérer les versions de Python

pyenv devient inutile. uv installe et gère tes interpréteurs Python à ta place. Installe la version qu'il te faut, puis fixe-la pour le projet :

bash
uv python install 3.12
uv python pin 3.12

La commande pin met à jour le fichier .python-version. La prochaine fois que quelqu'un lance uv run dans le projet, la bonne version de Python sera téléchargée automatiquement si elle manque.

6. Installer des outils en ligne de commande

Tu utilises des utilitaires comme ruff, httpie ou cowsay ? uv tool install remplace pipx et les place dans un environnement isolé, accessible depuis n'importe où :

bash
uv tool install ruff

Ensuite, tu les lances normalement : ruff check .

7. Verrouiller et partager ton environnement

Le fichier uv.lock fige les versions exactes de toutes tes dépendances. Quand tu partages ton projet, tes collègues n'ont qu'une commande à taper pour recréer un environnement identique au tien :

bash
uv sync

uv sync lit le pyproject.toml et le uv.lock, installe tout, et monte l'environnement. Le fameux « ça marche chez moi » disparaît du vocabulaire de l'équipe.

uv ne fait rien de plus que ce que tu faisais déjà. Il fait exactement pareil, mais en une commande, dix à cent fois plus vite, et sans te laisser casser ton environnement en route. Si tu démarres un projet Python aujourd'hui, surtout un projet d'IA où les dépendances s'empilent à vitesse grand V, commence-le avec uv. Ton futur toi te dira merci.