uv - Nouveau gestionnaire de packages Python, de projets et d'environnements
Les points positifs de Python uv
Python uv (lu « you-vee ») est un outil moderne et performant de gestion de paquets et de projets Python écrit en Rust. Il est conçu comme un remplacement plug-and-play des outils traditionnels de gestion de paquets Python tels que pip
, pip-tools
, virtualenv
, pipx
et pyenv
, visant à simplifier et accélérer les workflows de développement Python.
uv est développé par Astral, l’équipe derrière le populaire linter Python Ruff, et est conçu pour répondre aux problèmes courants de l’écosystème Python — tels que les installations lentes, les conflits de dépendances et la gestion complexe des environnements — en exploitant les performances de Rust et l’architecture logicielle moderne.
Fonctionnalités 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 des dépendances, la gestion des environnements virtuels, la gestion des versions Python, la création de projets et l’exécution de scripts dans un seul outil.
- Compatibilité : Propose une interface de ligne de commande compatible avec pip, facilitant son adoption sans courbe d’apprentissage importante.
- Gestion robuste des dépendances : Fournit une résolution précise des dépendances et un support de fichiers de verrouillage 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 pas convaincu d’utiliser uv ?
- Performance : Réduit de manière spectaculaire les temps d’installation des paquets et de résolution des dépendances.
- Simplicité : Unifie plusieurs outils en un seul, simplifiant la configuration et la gestion des projets.
- Fiabilité : Fournit des environnements cohérents et reproductibles avec des messages d’erreur clairs et une résolution des conflits.
- Normes modernes : Supporte
pyproject.toml
pour la configuration du projet, s’alignant sur les normes actuelles de l’emballage Python.
Exemples d’utilisation
Essayons quelque chose d’excitant !
- Démarrer 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 à fichier unique sans fichiers de dépendances séparés.
Comparaison avec les outils traditionnels
Fonctionnalité | uv | pip/virtualenv | Poetry |
---|---|---|---|
Vitesse | Très rapide | Lente | Modérée |
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 |
Support des fichiers de verrouillage | Oui | Non (nécessite pip-tools) | Oui |
Exécution de scripts | Intégrée | Non | Limitée |
Comment installer et commencer à utiliser UV sur votre 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 Python est installé)
pip install uv
Note : Cette méthode n’est pas recommandée pour une utilisation système globale à 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, à l’échelle utilisateur)
pipx install uv
Cette méthode est plus propre pour une utilisation globale si vous utilisez déjà pipx
.
Démarrage
Pour Vérifier l’installation - Exécutez :
uv
Vous devriez voir un menu d’aide confirmant que uv est installé et prêt à l’emploi.
Pour Créer et activer un environnement virtuel :
- Créer un venv :
uv venv test
- Activer-le sur Linux/macOS :
source test/bin/activate
- Activer-le sur Windows :
.\test\Scripts\activate
Maintenant, vous pouvez 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/mets à jour le fichier de verrouillage.
Synchroniser les dépendances
Installer toutes les dépendances dans votre environnement :
uv sync
Ou, utiliser l’interface compatible avec pip :
uv pip install
Cela garantit que toutes les dépendances sont installées conformément à votre fichier de verrouillage.
Exécuter des scripts
Utilisez :
uv run script.py
Cela gère automatiquement l’environnement et les dépendances de votre script.
Intégration avec le shell (optionnel)
Pour un workflow plus fluide, vous pouvez ajouter l’intégration avec le shell à votre .zshrc
ou .bashrc
pour activer automatiquement un environnement virtuel par défaut et aliaser pip
vers uv pip
.
Avec ces étapes, vous aurez uv installé et vous serez prêt à gérer vos projets Python avec vitesse et facilité.
Installer des 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 dernière version stable de Python disponible.uv python install
- Installer une version spécifique :
Cela installe la dernière version de correctif de Python 3.12 (par exemple, 3.12.3).uv python install 3.12
- Installer une version exacte de correctif :
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 correspondant à une contrainte :
Cela modifie la contrainte de version de 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 Python existantes si elles sont présentes, ou vous pouvez forcer l’utilisation de Python système avec l’indicateur --no-managed-python
.
Mises à jour : Vous pouvez mettre à jour les versions de Python gérées par uv vers la dernière version de correctif avec :
uv python upgrade 3.12
Ou mettre à jour toutes les versions installées :
uv python upgrade
Les mises à jour entre les versions mineures (par exemple, 3.12 vers 3.13) ne sont pas prises 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 de localisations bien définies et en interrogeant chaque candidat pour ses métadonnées de version. Voici comment cela fonctionne :
- Installations Python gérées :
UV commence par vérifier le répertoire spécifié par la variable d’environnementUV_PYTHON_INSTALL_DIR
, où il stocke ses propres versions de Python gérées. - Chemin système (PATH) :
Sur macOS et Linux, UV vérifie les exécutables nomméspython
,python3
oupython3.x
(oùx
est un numéro de version) dans les répertoires listés dans lePATH
système. Sur Windows, il recherchepython.exe
. - Emplacements spécifiques à Windows :
Sur Windows, UV vérifie également le registre Windows et les interpréteurs Python du Microsoft Store à l’aide de 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 la compatibilité avant de rechercher ailleurs. - Interrogation des métadonnées :
Chaque exécutable découvert est interrogé pour ses métadonnées de version. Seuls les exécutables correspondant à 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 recours :
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 utiliser uniquement 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 que UV peut fiablement localiser et utiliser 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/
- Feuille de rappel Python
- Feuille de rappel Conda
- Feuille de rappel venv
- Feuille de rappel Bash
- Feuille de rappel Ollama
- Feuille de rappel venv
- Popularité des langages de programmation et frameworks