Maison >développement back-end >Tutoriel Python >Présentation d'uv : gestionnaire de packages Python de nouvelle génération

Présentation d'uv : gestionnaire de packages Python de nouvelle génération

Patricia Arquette
Patricia Arquetteoriginal
2024-12-19 06:34:26925parcourir

L'évolution de Python a été étroitement liée aux progrès de la gestion des packages, des installations manuelles aux outils comme pip et poésie. Cependant, à mesure que les projets deviennent de plus en plus complexes, les outils traditionnels manquent souvent de rapidité et d'efficacité.

uv est un package Python de pointe et un gestionnaire de projet construit avec Rust, qui vise à changer cela. En combinant les fonctionnalités d'outils tels que pip, poésie et virtualenv, uv rationalise les tâches telles que la gestion des dépendances, l'exécution de scripts et la création de projets, le tout avec des performances exceptionnelles. Sa compatibilité transparente avec les commandes pip, ne nécessitant aucune courbe d'apprentissage supplémentaire.

Dans ce tutoriel, nous explorerons comment installer uv et tirer le meilleur parti de ses fonctionnalités. De la configuration d'un projet et de la gestion des dépendances à l'exécution de scripts et à l'exploitation de son interface pip améliorée.

Commencer

Table des matières

  • limitations des pips
  • Qu'est-ce que les UV
  • Principales fonctionnalités d'uv
  • Benchmarks
  • Installation
  • Création d'environnements virtuels
  • Créer une application flask en utilisant uv
  • Installer Python avec uv
  • Outils
  • Aide-mémoire
  • Limites actuelles

limitations des pips

Pip est un système de gestion de packages largement utilisé écrit en Python, conçu pour installer et gérer des packages logiciels. Cependant, malgré sa popularité, il est souvent critiqué pour être l’un des outils de gestion de packages les plus lents pour Python. Les plaintes concernant la « lenteur de l'installation de pip » sont si courantes qu'elles apparaissent fréquemment dans les forums et les fils de discussion des développeurs.

Un inconvénient important de pip est sa sensibilité aux odeurs de dépendance, qui se produisent lorsque les fichiers de configuration des dépendances sont mal écrits ou mal entretenus. Ces problèmes peuvent entraîner de graves conséquences, telles qu'une complexité accrue et une maintenabilité réduite des projets.

Une autre limitation de pip est son incapacité à faire correspondre systématiquement et avec précision le code Python lors de la restauration des environnements d'exécution. Cette inadéquation peut entraîner un faible taux de réussite pour l'inférence de dépendance, ce qui rend difficile la recréation fiable des environnements de projet.

Qu'est-ce que les UV

uv est un gestionnaire de packages Python moderne et performant, développé par les créateurs de ruff et écrit en Rust. Conçu pour remplacer les outils pip et pip, il offre une vitesse et une compatibilité exceptionnelles avec les outils existants.

Les fonctionnalités clés incluent la prise en charge des installations modifiables, des dépendances Git et URL, des fichiers de contraintes, des index personnalisés, etc. Les environnements virtuels conformes aux normes d'uv fonctionnent de manière transparente avec d'autres outils, évitant ainsi le verrouillage ou la personnalisation. Il est multiplateforme, prend en charge Linux, Windows et macOS, et a été largement testé par rapport à l'index PyPI.

En se concentrant sur la simplicité, la vitesse et la fiabilité, uv résout les problèmes courants des développeurs tels que les installations lentes, les conflits de versions et la gestion complexe des dépendances, offrant une solution intuitive pour le développement Python moderne.

Principales caractéristiques des UV

  • ⚖️ Remplacement instantané : remplace de manière transparente pip, pip-tools, virtualenv et d'autres outils avec une compatibilité totale.
  • ⚡ Vitesse fulgurante : 10 à 100 fois plus rapide que les outils traditionnels comme pip, pip-compile et pip-sync.
  • ? Efficacité de l'espace disque : utilise un cache global pour la déduplication des dépendances, économisant ainsi le stockage.
  • ? Installation flexible : installable via curl, pip ou pipx sans nécessiter Rust ou Python.
  • ? Entièrement testé : performances éprouvées à grande échelle avec les 10 000 meilleurs packages PyPI.
  • ?️ Prise en charge multiplateforme : entièrement compatible avec macOS, Linux et Windows.
  • ? Gestion avancée des dépendances : les fonctionnalités incluent des remplacements de versions de dépendances, des stratégies de résolution alternatives et un résolveur de suivi des conflits.
  • ⁉️ Effacer les messages d'erreur : la meilleure gestion des erreurs de sa catégorie garantit que les développeurs peuvent résoudre les conflits efficacement.
  • ? Fonctionnalités Python modernes : prend en charge les installations modifiables, les dépendances Git, les URL directes, les dépendances locales, les fichiers de contraintes, etc.
  • ? Outillage unifié : combine les fonctionnalités d'outils tels que pip, pipx, poésie, pyenv, twine, etc. dans une solution unique.
  • ?️ Gestion des applications et des scripts : installe et gère les versions de Python, exécute des scripts avec des métadonnées de dépendance en ligne et prend en charge des flux de travail de projet complets.
  • ?️ Universal Lockfile : simplifie la gestion de projet avec des fichiers de verrouillage cohérents et portables.
  • ? Prise en charge de l'espace de travail : gère des projets évolutifs avec une gestion de l'espace de travail de style Cargo.

Repères

Introducing uv: Next-Gen Python Package Manager
source : https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
Résoudre (à gauche) et installer (à droite) les dépendances à l'aide d'un cache chaud, simuler le processus de recréation d'un environnement virtuel ou ajouter une nouvelle dépendance à un projet existant.

Introducing uv: Next-Gen Python Package Manager
source : https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
La résolution (à gauche) et l'installation (à droite) des dépendances avec un cache froid simulent l'exécution dans un environnement propre. Sans mise en cache, uv est 8 à 10 fois plus rapide que pip et pip-tools, et avec un cache chaud, il atteint des vitesses 80 à 115 fois plus rapides.

Introducing uv: Next-Gen Python Package Manager
source : https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
Création d'un environnement virtuel avec (à gauche) et sans (à droite) des packages de départ comme pip et setuptools. uv est environ 80 fois plus rapide que python -m venv et 7 fois plus rapide que virtualenv, tout en fonctionnant indépendamment de Python.

Installation

L'installation d'uv est rapide et simple. Vous pouvez opter pour des installateurs autonomes ou l'installer directement depuis PyPI.

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
pip install uv

# With pipx.
pipx install uv

# With Homebrew.
brew install uv

# With Pacman.
pacman -S uv

Introducing uv: Next-Gen Python Package Manager
Introducing uv: Next-Gen Python Package Manager

Avant d'utiliser uv, nous devons ajouter le chemin uv aux variables d'environnement.
Pour Linux et macOS, modifiez la variable d'environnement PATH à l'aide de la commande suivante dans le terminal :

export PATH="$HOME/.local/bin:$PATH"

Pour Windows, pour ajouter un répertoire à la variable d'environnement PATH pour l'utilisateur et le système sous Windows, recherchez Variables d'environnement dans le panneau de recherche. Sous Variables utilisateur / Variables système, sélectionnez la variable Chemin, cliquez sur Modifier, puis cliquez sur Nouveau et ajoutez le chemin souhaité.

%USERPROFILE%\.local\bin

Introducing uv: Next-Gen Python Package Manager
Après l'installation, exécutez la commande uv dans le terminal pour vérifier qu'elle a été correctement installée.

Introducing uv: Next-Gen Python Package Manager

Création d'environnements virtuels

Créer un environnement virtuel avec uv est simple et direct. Utilisez la commande suivante, ainsi que le nom de l'environnement souhaité, pour le créer.

uv venv
  • Exécutez la commande suivante pour activer l'environnement virtuel.
# On macOS and Linux.
source .venv/bin/activate

# On Windows.
.venv\Scripts\activate

Installation des packages

L'installation des packages dans l'environnement virtuel suit un processus familier. Les différentes méthodes d'installation sont indiquées ci-dessous.

uv pip install flask                # Install Flask.
uv pip install -r requirements.txt  # Install from a requirements.txt file.
uv pip install -e .                 # Install current project in editable mode.
uv pip install "package @ ."        # Install current project from disk
uv pip install "flask[dotenv]"      # Install Flask with "dotenv" extra.

Introducing uv: Next-Gen Python Package Manager

Pour synchroniser les dépendances verrouillées avec l'environnement virtuel, utilisez la commande suivante :

uv pip sync requirements.txt  # Install dependencies from a requirements.txt file.

uv prend en charge une variété d'arguments de ligne de commande similaires à ceux des outils existants, notamment -r conditions.txt, -c contraintes.txt, -e ., --index-url, et plus encore.

Construire une application Flask en utilisant UV

Explorons quelques commandes liées au projet avec uv. Commencez par initialiser un projet Python nommé « sample-project ».

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
pip install uv

# With pipx.
pipx install uv

# With Homebrew.
brew install uv

# With Pacman.
pacman -S uv

Accédez au répertoire d'exemple de projet. uv initialise le projet avec des fichiers essentiels tels que app.py, exigences.txt, README.md, etc.

Introducing uv: Next-Gen Python Package Manager

Utilisez la commande run pour exécuter l'exemple de fichier Python. Ce processus crée d'abord le dossier de l'environnement virtuel, puis exécute le fichier Python.

export PATH="$HOME/.local/bin:$PATH"

Introducing uv: Next-Gen Python Package Manager

Installer le flacon

Ajoutez Flask aux dépendances de votre projet.

%USERPROFILE%\.local\bin

Créer l'application Flask

Créez-en un nouveau et écrivez le code suivant.

uv venv

Exécutez l'application

Utilisez la commande uv run pour exécuter l'application.

# On macOS and Linux.
source .venv/bin/activate

# On Windows.
.venv\Scripts\activate

Ouvrez un navigateur ou utilisez un outil comme curl ou Postman pour envoyer une requête GET.

Introducing uv: Next-Gen Python Package Manager
Introducing uv: Next-Gen Python Package Manager

Installer Python avec UV

L'utilisation de uv pour installer Python est facultative, car elle fonctionne de manière transparente avec les installations Python existantes. Cependant, si l'installation de Python via uv est préférable, cela peut être fait avec une commande simple :

uv pip install flask                # Install Flask.
uv pip install -r requirements.txt  # Install from a requirements.txt file.
uv pip install -e .                 # Install current project in editable mode.
uv pip install "package @ ."        # Install current project from disk
uv pip install "flask[dotenv]"      # Install Flask with "dotenv" extra.

Introducing uv: Next-Gen Python Package Manager

Cette approche est souvent plus pratique et fiable que les méthodes traditionnelles, car elle évite d'avoir à gérer des référentiels ou à télécharger des programmes d'installation. Exécutez simplement la commande et la configuration est prête à être utilisée.

Outils

Les outils CLI peuvent être installés et utilisés avec la commande uv. Par exemple, les outils huggingface_hub peuvent être installés pour permettre d'extraire et de transférer des fichiers vers les référentiels Hugging Face.

  • Utilisez la commande suivante pour installer huggingface_hub en utilisant uv.
uv pip sync requirements.txt  # Install dependencies from a requirements.txt file.

Introducing uv: Next-Gen Python Package Manager

  • La commande suivante affiche tous les outils installés :
uv init sample-project

Introducing uv: Next-Gen Python Package Manager

Aide-mémoire

Voici une aide-mémoire rapide pour effectuer des opérations courantes avec uv :

Introducing uv: Next-Gen Python Package Manager

Limites actuelles

Même si uv offre une solution rapide et efficace pour la gestion des packages Python, elle présente certaines limites :

  • Compatibilité pip incomplète : bien que uv prenne en charge une partie substantielle de l'interface pip, il ne couvre pas encore l'ensemble des fonctionnalités. Certaines de ces différences sont des choix de conception intentionnels, tandis que d'autres proviennent du fait que l'UV en est encore à ses premiers stades de développement. Pour une comparaison détaillée, consultez le guide de compatibilité pip.
  • Exigences.txt spécifiques à la plate-forme : comme pip-compile, uv génère des fichiers requis.txt spécifiques à la plate-forme. Cela contraste avec des outils tels que Poetry et PDM, qui créent des fichiers poésie.lock et pdm.lock indépendants de la plate-forme. Par conséquent, les fichiers Requirements.txt d'uv peuvent manquer de portabilité sur différentes plates-formes et versions de Python.

Merci d'avoir lu cet article !!

Merci Gowri M Bhatt d'avoir révisé le contenu.

Si vous avez apprécié cet article, veuillez cliquer sur le bouton cœur ♥ et partager pour aider les autres à le trouver !

Ressources

uv - Un package Python extrêmement rapide et un gestionnaire de projet, écrit en Rust | docs.astral.sh

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn