Ê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.
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.
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
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 'requestsGénération automatique de métadonnées
Cela ajoute des métadonnées au fichier de script :
# /// script # dependencies = [ # "requestsEt c'est tout ! Vous pouvez partager ce fichier avec quelqu'un d'autre, et il peut simplement exécuter :
$ uv run app.pyEt 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 venvCela 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.9L'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.
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 !
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.
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.
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.
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