Maison > développement back-end > Tutoriel Python > 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

Barbara Streisand
Libérer: 2024-09-30 06:16:02
original
1019 Les gens l'ont consulté

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 est une question de 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 un management 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])
Copier après la connexion

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 autonome et partageable :

$ uv add --script app.py 'requests<3' 'rich'
Copier après la connexion

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

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

# /// script
# dependencies = [
#   "requests<3",
#   "rich",
# ]
# ///
Copier après la connexion

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

$ uv run app.py
Copier après la connexion

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
Copier après la connexion

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

$ uv venv my_env --python 3.9
Copier après la connexion

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
    
    Copier après la connexion

    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 du 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 ponctuelle.

    $ uv pip install requests
    
    Copier après la connexion

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'arrête 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"
Copier après la connexion

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
Copier après la connexion

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

$ uv run --python 3.10 app.py
Copier après la connexion

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

$ uv python pin 3.9
Copier après la connexion

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


5. Say Goodbye to pip Hassles

It's pip—but Faster and Better

uv provides a pip-like experience but with turbocharged performance. Installing packages is straightforward:

$ uv pip install flask
Copier après la connexion

Need to add optional dependencies or install directly from a GitHub repo? No sweat:

$ uv pip install 'torch>=1.10.0' "git+https://github.com/astral-sh/ruff"
Copier après la connexion

No more waiting around for slow installations—uv gets the job done fast and effectively.


6. Manage CLI Tools Globally and Easily

From black to ruff, Get Your Tools Hassle-Free

Whether you're linting code or formatting files, uv makes installing CLI tools easy:

  • Globally:

    $ uv tool install ruff
    
    Copier après la connexion
  • Locally within a Project:

    $ uv add ruff
    
    Copier après la connexion
  • Run Ephemeral Commands without Installing Globally:

    $ uvx black my_code.py
    
    Copier après la connexion

Say goodbye to package conflicts and environment pollution—just run your tools whenever and wherever you need them.


If you're looking to supercharge your Python development and want to stop wrestling with multiple tools, uv is your answer. With its streamlined commands, reproducible environments, and efficient package management, uv makes Python development a pleasure rather than a chore.

Ready to take uv for a spin? ? Start today and experience a better way to manage your Python projects.


Stay tuned for Part 2, where we'll dive deeper into advanced features like leveraging pyproject.toml, handling global vs. local tool installations, and how uv can be your best friend when managing complex environments.

Happy coding! ?✨

For more details and full documentation, check out uv documentation.

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal