uv - Nouveau gestionnaire de paquets, de projets et d’environnements Python
Les atouts de Python uv
Python uv (prononcé « you-vee ») est un gestionnaire de paquets et de projets Python moderne et haute performance, écrit en Rust. Il est conçu comme un remplacement direct des outils de gestion de paquets Python traditionnels tels que pip, pip-tools, virtualenv, pipx et pyenv, avec pour objectif de simplifier et d’accélérer les flux de travail de développement Python.
uv est développé par Astral, l’équipe derrière le linter Python populaire Ruff, et est conçu pour résoudre les points douloureux courants de l’écosystème Python — tels que les installations lentes, les conflits de dépendances et la gestion complexe des environnements — en exploitant la performance de Rust et l’architecture logicielle moderne.

Caractéristiques principales de uv
- Vitesse exceptionnelle : uv est nettement plus rapide que les outils traditionnels — généralement 8 à 10 fois plus rapide que pip sans cache, et jusqu’à 80 à 115 fois plus rapide avec un cache chaud.
- Outil tout-en-un : Combine l’installation de paquets, la résolution de dépendances, la gestion des environnements virtuels, la gestion des versions Python, la création de squelettes de projets et l’exécution de scripts dans un seul outil.
- Compatibilité : Offre une interface en ligne de commande compatible avec pip, facilitant son adoption sans une courbe d’apprentissage raide.
- Gestion robuste des dépendances : Fournit une résolution précise des dépendances et une prise en charge des fichiers de verrouillage (lockfiles) pour des environnements reproductibles.
- Environnements virtuels automatiques : Crée et gère automatiquement les environnements virtuels, réduisant la configuration manuelle.
- Support multiplateforme : Fonctionne sur macOS, Linux et Windows.
- Installation autonome : Peut être installé sans nécessiter Python ou Rust, en utilisant un simple installateur ou
curl.

Toujours incertain sur les raisons d’utiliser uv ?
- Performance : Réduit considérablement les temps d’installation des paquets et de résolution des dépendances.
- Simplicité : Unifie plusieurs outils en un seul, rationalisant la configuration et la gestion des projets.
- Fiabilité : Fournit des environnements constants et reproductibles avec des messages d’erreur clairs et une résolution des conflits.
- Normes modernes : Prend en charge
pyproject.tomlpour la configuration des projets, s’alignant avec les normes actuelles d’emballage Python.
Cas d’utilisation en exemple
Essayons quelque chose d’excitant !
- Débuter un nouveau projet :
uv init myproject
cd myproject
uv add requests
uv run python script.py
Cela crée un répertoire de projet, configure un environnement virtuel, installe les dépendances et exécute les scripts dans un environnement isolé.
- Gérer des scripts avec des dépendances en ligne :
uv add --script script.py requests
uv run script.py
uv peut gérer les dépendances pour des scripts mono-fichier sans fichiers de requirements séparés.
Comparaison avec les outils traditionnels
| Fonctionnalité | uv | pip/virtualenv | Poetry |
|---|---|---|---|
| Vitesse | Très rapide | Lent | Modéré |
| Environnements virtuels | Automatique | Manuel | Automatique |
| Résolution des dépendances | Avancée | Basique | Avancée |
| Gestion des versions Python | Oui | Non (nécessite pyenv) | Non |
| Prise en charge des lockfiles | Oui | Non (nécessite pip-tools) | Oui |
| Exécution de scripts | Intégré | Non | Limité |
Comment installer et commencer à utiliser UV sur mon système
Pour installer et commencer à utiliser uv sur votre système, suivez ces étapes simples :
Installation
- Installateur autonome (Recommandé)
- Linux/macOS :
curl -LsSf https://astral.sh/uv/install.sh | sh
Ou, si vous préférez wget :
wget -qO- https://astral.sh/uv/install.sh | sh
- Windows (PowerShell) :
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Version spécifique : Vous pouvez demander une version spécifique en l’incluant dans l’URL, par exemple
https://astral.sh/uv/0.7.15/install.sh.
- Alternative : Installer via pip (si vous avez Python installé)
pip install uv
Note : Cette méthode est moins recommandée pour un accès système général à moins que vous ne sachiez ce que vous faites, car elle peut encombrer votre environnement Python système.
- Installer via pipx (pour une installation isolée, au niveau de l’utilisateur)
pipx install uv
Cette méthode est plus propre pour un accès global si vous utilisez déjà pipx.
Prise en main
Pour vérifier l’installation - Exécutez :
uv
Vous devriez voir un menu d’aide confirmant que uv est installé et prêt.
Pour créer et activer un environnement virtuel
- Créer un venv :
uv venv test
- L’activer sur Linux/macOS :
source test/bin/activate
- L’activer sur Windows :
.\test\Scripts\activate
Vous pouvez maintenant utiliser uv pip install pour installer des paquets dans cet environnement.
Initialiser un nouveau projet
uv init
Cela crée un pyproject.toml et un .gitignore pour votre projet.
Ajouter des dépendances
Ajouter un paquet :
uv add
Cela met à jour pyproject.toml et génère/met à jour le fichier de verrouillage.
Synchroniser les dépendances
Installer toutes les dépendances dans votre environnement :
uv sync
Ou, utiliser l’interface compatible pip :
uv pip install
Cela garantit que toutes les dépendances sont installées conformément à votre fichier de verrouillage.
Exécuter des scripts
Utiliser :
uv run script.py
Cela gère automatiquement l’environnement et les dépendances pour votre script.
Intégration avec le shell (Optionnel)
Pour un flux de travail plus fluide, vous pouvez ajouter l’intégration du shell à votre .zshrc ou .bashrc pour activer automatiquement un environnement virtuel par défaut et créer un alias pip vers uv pip.
Avec ces étapes, vous aurez uv installé et serez prêt à gérer vos projets Python avec rapidité et facilité.
Installation de versions spécifiques de Python
Vous pouvez utiliser uv pour installer des versions spécifiques de Python et les gérer pour vos projets.
- Installer la dernière version stable de Python :
Cette commande télécharge et installe la version stable de Python la plus récente disponible.uv python install - Installer une version spécifique :
Cela installe la dernière version de correctif (patch) de Python 3.12 (par exemple, 3.12.3).uv python install 3.12 - Installer une version de correctif exacte :
Cela installe exactement Python 3.12.3.uv python install 3.12.3 - Installer plusieurs versions :
Cela installe Python 3.9, 3.10 et 3.11.uv python install 3.9 3.10 3.11 - Installer une version qui correspond à une contrainte :
Cela modifie la exigence de version Python du projet.uv python install '>=3.8,=3.11"
Notes supplémentaires
Téléchargements automatiques : Par défaut, uv téléchargera et installera automatiquement les versions de Python requises si elles ne sont pas trouvées sur votre système.
Python système : uv peut utiliser les installations de Python existantes si présentes, ou vous pouvez forcer l’utilisation du Python système avec le drapeau --no-managed-python.
Mise à jour : Vous pouvez mettre à niveau les versions de Python gérées par uv vers la dernière version de correctif avec :
uv python upgrade 3.12
Ou mettre à niveau toutes les versions installées :
uv python upgrade
La mise à niveau entre des versions mineures (par exemple, de 3.12 à 3.13) n’est pas prise en charge.
En résumé, uv fournit des outils flexibles et puissants pour installer, gérer et utiliser des versions spécifiques de Python dans vos projets.
Comment UV découvre les interpréteurs Python disponibles sur différents systèmes
UV découvre les interpréteurs Python disponibles sur différents systèmes en vérifiant un ensemble d’emplacements bien définis et en interrogeant chaque candidat pour ses métadonnées de version. Voici comment cela fonctionne :
- Installations de Python gérées :
UV cherche d’abord dans le répertoire spécifié par la variable d’environnementUV_PYTHON_INSTALL_DIR, où il stocke ses versions de Python gérées. - Chemin système (PATH) :
Sur macOS et Linux, UV recherche des exécutables nomméspython,python3oupython3.x(oùxest un numéro de version) dans les répertoires listés dans lePATHsystème. Sur Windows, il recherchepython.exe. - Emplacements spécifiques à Windows :
Sur Windows, UV vérifie également le registre Windows et les interpréteurs Python de la Microsoft Store en utilisant la sortie depy --list-paths. - Environnements virtuels :
Si un environnement virtuel est actif ou spécifié, UV vérifie l’interpréteur dans cet environnement pour sa compatibilité avant de chercher ailleurs. - Requête de métadonnées :
Chaque exécutable découvert est interrogé pour ses métadonnées de version. Seuls les exécutables qui correspondent à la version demandée (ou à la contrainte de version) sont pris en compte. Les fichiers non exécutables sont ignorés. - Préférence et repli (fallback) :
Par défaut, UV préfère les installations de Python système, mais vous pouvez ajuster cela avec des options pour préférer les versions gérées ou n’utiliser que les versions gérées/système. Si aucun interpréteur approprié n’est trouvé, UV peut télécharger et installer la version requise.
Ce processus de découverte robuste garantit qu’UV peut localiser et utiliser de manière fiable l’interpréteur Python correct sur différents systèmes d’exploitation et environnements.
Liens utiles
- Page d’accueil de uv : https://docs.astral.sh/uv/
- Paquet uv : https://pypi.org/project/uv/
- GitHub de uv : https://github.com/astral-sh/uv/
- Aide-mémoire Python
- Aide-mémoire Conda
- Aide-mémoire venv
- Aide-mémoire Bash
- Aide-mémoire venv
- Popularité des langages de programmation et des frameworks
- Centre d’outils pour développeurs — aides-mémoire, outils CLI et flux de travail de développement