Python, comment gérer ?

Best practices en outillage Python.

Lorsque l'on commence à pratiquer le Python 🐍 nous sommes rapidement confronté à des problématiques liés au besoin de disposer de versions différentes de packages, de l'interpréteur Python et de pouvoir reproduire avec exactitude cet environnement de dév sur un autre poste de développeur.
C'est pour répondre à ce genre de besoins précis que sont apparu tout un tas d'outils de gestion de nos environnements Python.

Les classiques

Les outils classiques permettant d'isoler les environnements Python (ainsi que les dépendances) :

  • venv : inclus par défaut avec Python3
  • virtualenv : plus complet que venv (ex fonctionne avec Python2 aussi)
  • pipenv : combine les fonctionnalités de pip et virtualenv
  • pyenv : équivalent de nvm (pour Nodejs), permet de jongler avec des versions différentes de Python

Les outils plus modernes

UV

A single tool to replace pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv, and more.

Le couteau Suisse le plus moderne, UV est un next-generation Python project manager apparu en 2024 qui permet de centraliser un ensemble de fonctionalités de gestion pour env Python en un seul outil.

Voir la très belle documentation de UV avec :

UV est Open Source est produit et maintenu par Astral (developer tools for the Python ecosystem), aussi auteur de Ruff (linter et code formatter Python).

Complément

Blog post complet de Anna-Lena Popkes : An unbiased evaluation of environment management and packaging tools