"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Maîtriser la gestion de projet Python avec uv PartIl est temps d'abandonner la poésie

Maîtriser la gestion de projet Python avec uv PartIl est temps d'abandonner la poésie

Publié le 2024-11-04
Parcourir:537

Mastering Python Project Management with uv PartIt

Êtes-vous fatigué de jongler avec plusieurs outils comme pip, virtualenv, conda, poésie et pyenv juste pour garder vos environnements et dépendances Python sous contrôle ? Vous n'êtes pas seul ! La gestion de projets Python peut sembler un casse-tête, en particulier avec tous les différents gestionnaires de packages et outils avec lesquels vous devez vous battre.

Entrez uv — le Universal Virtualenv. Considérez-le comme un gestionnaire de packages à guichet unique conçu pour rationaliser et accélérer votre processus de développement Python.


Une petite histoire

uv s'inspire de Rye, un autre gestionnaire d'emballage moderne, pour unifier les meilleures fonctionnalités de pip, pip-tools, pyenv, virtualenv et poésie. Construit avec Rust, uv est non seulement rapide mais très efficace, simplifiant tout, de la gestion des dépendances à la création d'environnements virtuels.

Le but des UV

En un mot, uv concerne la consolidation. Pourquoi basculer entre plusieurs outils lorsque vous pouvez vivre une expérience unifiée ? Il vise à supprimer les frictions liées au développement Python, en vous offrant un moyen plus cohérent et plus rapide de gérer vos projets. Et ça va aussi très vite ! Cela ouvre de nouvelles portes, pour une gestion dynamique


1. Code portable avec métadonnées de script en ligne

Parlons des dépendances

L'une des fonctionnalités les plus intéressantes d'uv est la possibilité d'ajouter des dépendances directement dans votre script Python. Imaginez que vous ayez un script simple comme celui-ci :

# app.py
import requests
from rich.pretty import pprint

response = requests.get("https://peps.python.org/api/peps.json")
data = response.json()
pprint([(k, v["title"]) for k, v in data.items()][:10])

Exécuter ce script signifie généralement configurer un environnement virtuel et installer les dépendances manuellement. Avec uv, vous pouvez intégrer toutes vos dépendances directement dans le script, le rendant ainsi autonome et partageable :

$ uv add --script app.py 'requests



Génération automatique de métadonnées

Cela ajoute des métadonnées au fichier de script :

# /// script
# dependencies = [
#   "requests



Et c'est tout ! Vous pouvez partager ce fichier avec quelqu'un d'autre, et il peut simplement exécuter :

$ uv run app.py

Et voilà : aucune configuration externe requise ! Tout cela grâce à la rapidité et à l'efficacité des UV.


2. Création et gestion d'environnements virtuels

Premiers pas avec les environnements virtuels

Par défaut, uv nécessite que les packages soient installés dans des environnements virtuels pour garder votre système propre et éviter les conflits entre différents projets. Créer un environnement virtuel avec uv est simple :

$ uv venv

Cela créera un répertoire .venv contenant l'environnement isolé. Si vous souhaitez spécifier un répertoire personnalisé ou une version de Python, vous pouvez faire :

$ uv venv my_env --python 3.9

L'environnement est prêt à être utilisé et uv le détectera automatiquement pour toutes vos commandes, comme l'installation de packages ou l'exécution de scripts.

Quand utiliser uv add ou uv pip install

  • Utilisez uv add : lorsque vous souhaitez ajouter des dépendances au fichier pyproject.toml de votre projet. C'est mieux lorsque vous développez un projet et que vous souhaitez garder une trace de toutes les dépendances, ce qui rend le projet facilement partageable et reproductible. Nous en parlerons dans le prochain article, restez à l'écoute !

    $ uv add fastapi
    

    Cela mettra à jour votre pyproject.toml et verrouillera la version dans uv.lock.

  • Utilisez uv pip install : lorsque vous souhaitez installer des packages pour une utilisation rapide sans modifier le fichier de projet, ou pour des outils globaux où vous n'avez pas besoin de les suivre dans un pyproject.toml. Considérez UV pip comme une installation immédiate et unique.

    $ uv pip install requests
    

Choisir la bonne commande garantit que votre projet est correctement géré et facile à partager ou à déployer.


3. Verrouiller les versions pour la reproductibilité

Votre code a-t-il déjà été brisé à cause de mises à jour ?

Nous sommes tous passés par là : votre code fonctionne aujourd'hui, puis s'interrompt demain car un package est mis à jour. Avec uv, vous pouvez éviter cela en verrouillant les versions des packages pour garantir la cohérence et la reproductibilité :

[tool.uv]
exclude-newer = "2023-10-16T00:00:00Z"

De cette façon, même si de nouvelles versions de vos dépendances sortent, votre projet reste stable. Parfait pour les projets à long terme où vous ne pouvez pas vous permettre de surprises !


4. Gestion des versions Python

Différents projets, différentes versions de Python ? Aucun problème!

De nombreux développeurs doivent travailler sur plusieurs projets qui nécessitent différentes versions de Python. uv rend le changement de version aussi simple que :

$ uv python install 3.8 3.9 3.10

Une fois les versions installées, le basculement entre elles est fluide :

$ uv run --python 3.10 app.py

Et si vous souhaitez verrouiller une version spécifique pour un projet :

$ uv python pin 3.9

Plus besoin de jongler avec les commandes pyenv : uv s'occupe de tout le gros du travail pour vous.


5. Dites adieu aux tracas

C'est pip, mais plus rapide et meilleur

uv offre une expérience semblable à celle d'un pip, mais avec des performances turbocompressées. L'installation des packages est simple :

$ uv pip install flask

Besoin d'ajouter des dépendances facultatives ou d'installer directement à partir d'un dépôt GitHub ? Pas de sueur :

$ uv pip install 'torch>=1.10.0' "git https://github.com/astral-sh/ruff"

Plus besoin d'attendre des installations lentes : uv fait le travail rapidement et efficacement.


6. Gérez les outils CLI globalement et facilement

Du noir à la fraise, obtenez vos outils sans tracas

Que vous lintiez du code ou formatiez des fichiers, uv facilite l'installation des outils CLI :

  • À l'échelle mondiale :

    $ uv tool install ruff
    
  • Localement au sein d'un projet :

    $ uv add ruff
    
  • Exécuter des commandes éphémères sans installation globale :

    $ uvx black my_code.py
    

Dites adieu aux conflits de packages et à la pollution de l'environnement : exécutez simplement vos outils quand et où vous en avez besoin.


Si vous cherchez à dynamiser votre développement Python et que vous souhaitez arrêter de lutter avec plusieurs outils, uv est votre réponse. Avec ses commandes rationalisées, ses environnements reproductibles et sa gestion efficace des packages, uv fait du développement Python un plaisir plutôt qu'une corvée.

Prêt à essayer les UV ? ? Commencez dès aujourd'hui et découvrez une meilleure façon de gérer vos projets Python.


Restez à l'écoute de la partie 2, où nous approfondirons les fonctionnalités avancées telles que l'exploitation de pyproject.toml, la gestion des installations d'outils globales ou locales et comment uv peut être votre meilleur ami lors de la gestion d'environnements complexes.

Bon codage ! ?✨

Pour plus de détails et une documentation complète, consultez la documentation uv.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/thomas_bury_b1a50c1156cbf/mastering-python-project-management-with-uv-part1-its-time-to-ditch-poetry-3bi0?1. En cas de violation, veuillez contacter study_golang@163 .comdelete
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3