Emmanuel Chomarat
Dans cet article, nous explorerons comment utiliser l'outil uv pour remplacer plusieurs outils de gestion de projet tels que pipx, pip, env, poetry, etc. uv permet de gérer toutes les dimensions d'un projet de manière rapide et efficace.
Selon votre environnement vous devrez installer uv, un binaire écrit en Rust ce qui lui confére une très grande performance. Je détaille ici brièvement son installation mais vous pouvez consulter la documentation officielle pour d'autres méthodes.
Sous Windows, ouvrez un terminal powershell et éxectuer la commande suivante:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Ou, ce que je recommande, utilisez le gestionnaire de paquets winget
qui simplifie également la mise à jour ou la désinstallation du paquet.
winget install --id=astral-sh.uv -e
Pour Linux/Macos/WSL, ouvrez un terminal et éxecuter les commandes suivantes :
curl -LsSf https://astral.sh/uv/install.sh | sh
ou si vous utilisez l'outils brew
(fortement recommandé sous MacOS)
brew install uv
Pour plus de méthodes d'installation consultez la documentation d'installation
Passons maintenant à la création et à la gestion d’un projet avec uv. Cet article vous présente les étapes essentielles pour démarrer rapidement. Des articles ultérieurs aborderont des fonctionnalités avancées et les évolutions récentes de l'outil.
Pour créer un nouveau projet c'est très simple. Rendez vous dans le répertoire de votre choix et éxzecuter les commandes suivantes dans la console :
uv init projetX
cd projetX
Si le répertoire projetX existe déjà et contient du code vous pouvez directement taper ces commandes:
cd projetX
uv init
En effet la commande uv init
initialisera par défaut dans le répertoire courant la structure du projet. Nous explorerons d'autres paramètres de cette commande dans de futurs articles.
Dans les deux cas le répertoire contiendra l'arborescence suivante :
.
├── .gitignore
├── .python-version
├── README.md
├── main.py
├── pyproject.toml
└── ... autres fichiers si le répertoire n'était pas vide
Une fois le projet créé vous pouvez alors exécuter votre application (ici main.py) via la commande uv run
.
uv run main.py
Hello from projetX
Cette commande uv run
va effectuer plusieurs choses.
Dès lors uv run
deviendra votre nouvelle façon d'exécuter l'application depuis une ligne de commande. Le fichier pyproject.toml
centralise toutes les informations relatives aux dépendances et à la configuration de l'application et il est compatible avec de nombreux outils de l'écosystème Python
.
Votre projet est maintenant prêt à évoluer.
L'une des forces de Python
est son écosystème de packages. Vous avez probablement déjà utilisé la commande pip install
pour installer une nouvelle dépendance. Vous n'aurez plus besoin de faire cela (vous ne devrez plus faire cela au risque de ne pas avoir un environnement propre !!!).
Utilisez simplement uv add
pour ajouter une dépendance dans l'environnement et l'ajouter au fichier pyproject.toml
.
uv add flask
A partir de la vous pouvez éditer votre projet comme vous l'auriez fait dans un IDE (PyCharm, VSCode , VIM etc...)
Nous verrons dans de prochains articles comment enlever un package avec uv remove
ou bien comment mettre à jour une dépendance. Dans un premier temps je vous déconseille d'éditer directement le fichier pyproject.toml
mais nous verrons aussi que cela peut s'averer utile voir nécessaire.
Après cette introduction rapide sur uv
nous l'utiliserons régulièrement dans tous nos projets. Nous explorerons des fonctionnalités plus avancées (linter, packages, tests, ...) dans de prochains articles. Nous aborderons des sujets tels que le calculs numériques (Simulation, Intégration, Visualisation), d'IA ou bien encore d'analyse de données (financières ou autres).