Aller au contenu principal

uv : un gestionnaire de projets Python

Qu’est-ce que uv ?

uv est un outil ultra-rapide pour :

  • Installer les dépendances listées dans pyproject.toml
  • Créer et gérer un environnement virtuel
  • Exécuter des commandes dans cet environnement

Il remplace efficacement des outils comme pip et venv, tout en restant compatible avec les standards Python modernes comme pyproject.toml.

Installation

Pour installer uv, voir le site officiel : astral.sh/uv.

Initialiser un nouveau projet Python

uv permet de créer un squelette de projet moderne rapidement, avec :

  • Un fichier pyproject.toml
  • Un environnement virtuel local (.venv)
  • Une structure propre (src/, etc.)

Le site officiel astral.sh/uv propose un guide complet pour démarrer, mais en gros, la commande

uv init --package monprojet

permet de créer un projet. L'option --package est importante, car elle indique de mettre en place un projet Python avec un dossier src/ et un fichier pyproject.toml qui contient un script principal. Sans cette option, la structure du projet ressemblera plus à un projet classique comme vu à la page sur les paquets Python.

Gérer les dépendances

Si le projet a besoin de dépendances, uv permet de les installer facilement. Par exemple, pour ajouter le paquet numpy :

uv add numpy

Certaines dépendances peuvent être ajoutées en mode développement avec l'option --dev :

uv add --dev pytest

L'option --dev permet de l'installer dans l'environnement virtuel local, sans l'ajouter aux dépendances principales du projet.

Lancement du projet

Si vous avez utilisé la commande uv init --package monprojet, uv a configuré pour vous un script de lancement appelé monprojet dans le fichier pyproject.toml.

[project.scripts]
monprojet = "monprojet:main"

Vous pouvez exécuter ce script directement avec :

uv run monprojet

Notez qu'il est possible de lancer d'autres scripts définis dans pyproject.toml en utilisant la même commande uv run. Pour définir un script, il suffit de l'ajouter dans la section [project.scripts] du fichier pyproject.toml. Par exemple :

[project.scripts]
monprojet = "monprojet:main"
script1 = "monprojet.dossierA.fichierB:fonction"
script2 = "monprojet.dossierA:fonction_dans___init__py"

Lancement des tests

La commande uv run permet aussi d'exécuter pytest. Celui-ci doit être installé au préalable avec :

uv add --dev pytest

Une fois installé, vous pouvez lancer les tests avec :

uv run pytest
info

Il existe bien d'autres fonctionnalités avancées. Pour en savoir plus, consultez la documentation officielle de uv.