2 L’environnement de travail
Bien que vous puissiez écrire un script Python dans un fichier n’importe où dans votre système de fichiers, travailler de manière plus robuste nécessite de bien préparer son environnement de travail.
2.1 Isoler son environnement de travail
Un projet Python, c’est un interpréteur (sa version) et un ensemble de dépendances. Plusieurs interpréteurs peuvent cohabiter sur un même système. Les dépendances vont être spécifiques à une version d’interpréteur (installer pytest pour Python 3.13 ne le rends pas disponible pour 3.14). Chaque interpréteur a donc un environnement d’exécution. Si vous avez deux projets Python utilisant la même version d’interpréteur, elles utiliseront aussi le même environnement avec les mêmes dépendances.
Pour isoler les environnement par projet, nous utilisons les venv. L’utilitaire pour les créer fait parti du package standard.
Ci dessous, vous avez les grandes lignes mais consultez la documentation : https://docs.python.org/3/library/venv.html pour plus de précisions.
2.1.1 Création de l’environnement virtuel
L’outil s’utilise en ligne de commande et il faut commencer par créer l’environnement virtuel. La commande est de la forme :
python3.XX -m venv [ENV_DIR]
où :
python3.XXest la version de Python utilisée pour créer levenvet sera la version active de cet environnement. En fonction de votre système, vous pourrez avoir besoin de déclarer le chemin absolu.-m venvest la commande de création duvenv.[ENV_DIR]est le nom du répertoire où sera créé levenv. De manière générale, il est créé à la racine du projet et est nommé.venv.
La commande habituelle, exécutée dans le répertoire du projet, est sous cette forme (en supposant l’usage de python3.14) :
python3.14 -m venv .venv2.1.2 Activation de l’environnement virtuel
Créer un environnement virtuel consiste à créer un répertoire. Pour pouvoir l’utiliser, il faut l’activer. La commande va dépende re votre système. Les exemples suivants considèrent que l’environnement virtuel a été créé dans un répertoire .venv.
Sous sh, bash ou zsh :
source .venv/bin/activateSous Windows, avec le PowerShell
.venv/bin/Activate.ps1Sous Windows, avec le cmd.exe
.venv\Scripts\activate.bat
2.1.3 Désactiver un environnement virtuel
Si vous avez besoin de sortir de l’environnement virtuel, c’est à dire de le désactiver dans le terminal, l’instruction est :
deactivate2.1.4 Supprimer un environnement virtuel
Supprimer un environnement virtuel consiste à supprimer le répertoire qui le contient.
2.1.5 Les environnements virtuels et les gestionnaires de version
Le répertoire d’un environnement virtuel n’est pas sous contrôle de version. Ces environnement sont volumineux et peuvent contenir des packages spécifiques à votre système (OS ou architecture). Les environnements virtuels se reconstruisent.
2.1.6 Les environnements virtuels et les IDEs
Les principaux IDEs (PyCharm et Visual Studio Code) on des outils plus graphiques de gestion des environnements virtuels. Il ne s’agit cependant que d’une interface sur les instructions présentées ici.
2.2 Gérer des dépendances de manière standard
Les dépendances se gèrent de manière standard avec pip.
2.2.1 Installer une dépendance
Pour installer une dépendance :
pip install pytestVous pouvez installer plusieurs dépendances en une instruction
pip install pytest pylint ruff2.2.2 Mettre à jour une dépendance
pip install --upgrade pytestPour information, pip se met à jour par lui même :
pip install --upgrade pip2.2.3 Supprimer une dépendance
pip uninstall pytest2.2.4 Lister les dépendances
pip list2.2.5 Gérer les dépendances d’un projet, approche historique
Historiquement, les dépendances d’un projet sont déclarées dans un fichier requirements.txt, ce qui facilite leur installation. Ce fichier doit suivre une certaine syntaxe. Le plus simple est de le générer, à l’aide de l’instruction :
pip freezeCette instruction affichera dans le terminal les bibliothèques installées avec la syntaxe suivante :
flake8==5.0.4
ipython==8.11.0
pylint==2.15.5
pytest==7.0.1
Pour créer le fichier, il suffit de rediriger la sortie standard vers le fichier :
pip freeze > requirements.txtPour installer le contenu du fichier :
pip install -r requirements.txt
Il est également possible d’utiliser ce fichier pour mettre à jour des dépendances :
pip install --upgrade -r requirements.txt
2.3 L’approche packaging standard
Un programme Python, dans sa forme la plus simple, est une arborescence de fichiers. Python prévoit également la possibilité de packager le code pour en faite un package. C’est exactement le type de fichiers que vous installez avec pip instal. Mais créer un projet destiné au packaging a aussi un intérêt dans le cadre du développement.
Un projet destiné au packaging a une structure particulière (src-based layout) et est décrit dans un fichier pyproject.toml.
Il y a plusieurs intérêts pour le développement.
2.3.1 Installation du projet en mode éditable
pip install -e .Le projet actuel n’est pas installé, un lien est créé dans la bibliothèque des packages vers l’arborescence. Ceci permet de ne plus avoir de problème de chemin vers les ressources.
2.3.2 Une gestion centralisée des dépendances
Lorsqu’un projet est destiné au packaging, la création d’un package ne regarde pas le fichier requirements.txt. Les dépendances sont décrites dans le pyproject.toml.
Depuis pip 26.2, il est possible d’utiliser le fichier pyproject.toml et se passer du requirements.txt :
pip install . --only-depsEn général, dans un pyproject.toml, les dépendances ne sont que les dépendances de prod. Les dépendances de développement sont un groupe habituellement nommé dev et que l’on peut installer par :
pip install --group dev