From aa722ba521840832e1ede414cc85f7ffa4185bf9 Mon Sep 17 00:00:00 2001 From: Dimitri Merejkowsky Date: Thu, 26 Mar 2020 10:52:37 +0100 Subject: [PATCH] =?UTF-8?q?virtualenv:=20clarification=20de=20l'arborescen?= =?UTF-8?q?ce=20=C3=A0=20utiliser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../14-bibliothèques-01/05-virtualenv.rst | 45 ++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/cours/source/14-bibliothèques-01/05-virtualenv.rst b/cours/source/14-bibliothèques-01/05-virtualenv.rst index dc74723..0ddde37 100644 --- a/cours/source/14-bibliothèques-01/05-virtualenv.rst +++ b/cours/source/14-bibliothèques-01/05-virtualenv.rst @@ -4,8 +4,7 @@ Environnements virtuels La solution est d'utiliser un environnement virtuel (*virtualenv* en abrégé). C'est un répertoire *isolé* du reste du système. -Il se crée par exemple avec la commande ``python3 -m venv foo-venv``. où -``foo-venv`` est un répertoire quelconque. + Aparté : python3 -m venv sur Debian ------------------------------------ @@ -153,16 +152,52 @@ de commandes: Pour sortir du virtualenv, entrez la commande ``deactivate``. -Conclusion ----------- +Les environnements virtuels en pratique +---------------------------------------- + Le système de gestions des dépendances de Python peut paraître compliqué et bizarre, surtout venant d'autres langages. Mon conseil est de toujours suivre ces deux règles: -* Un virtualenv par projet et par version de Python +* Un virtualenv par projet * Toujours utiliser ``pip`` *depuis* un virtualenv Certes, cela peut paraître fastidieux, mais c'est une méthode qui vous évitera probablement de vous arracher les cheveux (croyez-en mon expérience). + +Voici un exemple d'arborescence qui montre deux projets, +``projet-1`` et ``projet-2``, chacun avec son virtualenv +dédié: + +.. code-block:: text + + projets + ├── projet-1 + │   ├── projet_1.py + │   └── .venv + │   ├── bin + │   ├── include + │   ├── lib + │   └── ... + └── projet-2 + ├── projet_2.py + └── .venv + ├── bin + ├── include + ├── lib + └── ... + +Notez bien que les sources de chaque projet ``projet_1.py`` et ``projet_2.py`` +sont au même niveau que le répertoire ``.venv`` et non à l'intérieur +de celui-ci. + +Vous pouvez aussi retenir la règle suivante : étant donné un réportoire +"X" contenant les sources d'un projet, les commandes à lancer pour créer +le virtualenv seront: + +.. code-block:: console + + cd + python3 -m venv .venv