uv - Nouveau gestionnaire de paquets, de projets et d’environnements Python

Les atouts de Python uv

Sommaire

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.

uv python ultra-violet spa

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.

uv vs poetry vs pdm vs pip performance comparison

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.toml pour 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

  1. 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.
  1. 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.

  1. 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 :
    uv python install
    
    Cette commande télécharge et installe la version stable de Python la plus récente disponible.
  • Installer une version spécifique :
    uv python install 3.12
    
    Cela installe la dernière version de correctif (patch) de Python 3.12 (par exemple, 3.12.3).
  • Installer une version de correctif exacte :
    uv python install 3.12.3
    
    Cela installe exactement Python 3.12.3.
  • Installer plusieurs versions :
    uv python install 3.9 3.10 3.11
    
    Cela installe Python 3.9, 3.10 et 3.11.
  • Installer une version qui correspond à une contrainte :
    uv python install '>=3.8,=3.11"
    
    Cela modifie la exigence de version Python du projet.

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’environnement UV_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és python, python3 ou python3.x (où x est un numéro de version) dans les répertoires listés dans le PATH système. Sur Windows, il recherche python.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 de py --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

S'abonner

Recevez de nouveaux articles sur les systèmes, l'infrastructure et l'ingénierie IA.