Browse Source

virtualenv: clarification de l'arborescence à utiliser

master
Dimitri Merejkowsky 4 years ago
parent
commit
aa722ba521
1 changed files with 40 additions and 5 deletions
  1. +40
    -5
      cours/source/14-bibliothèques-01/05-virtualenv.rst

+ 40
- 5
cours/source/14-bibliothèques-01/05-virtualenv.rst View File

@@ -4,8 +4,7 @@ Environnements virtuels
La solution est d'utiliser un environnement virtuel (*virtualenv* en La solution est d'utiliser un environnement virtuel (*virtualenv* en
abrégé). C'est un répertoire *isolé* du reste du système. 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 Aparté : python3 -m venv sur Debian
------------------------------------ ------------------------------------
@@ -153,16 +152,52 @@ de commandes:


Pour sortir du virtualenv, entrez la commande ``deactivate``. 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é Le système de gestions des dépendances de Python peut paraître compliqué
et bizarre, surtout venant d'autres langages. et bizarre, surtout venant d'autres langages.


Mon conseil est de toujours suivre ces deux règles: 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 * Toujours utiliser ``pip`` *depuis* un virtualenv


Certes, cela peut paraître fastidieux, mais c'est une méthode qui vous 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). é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 <X>
python3 -m venv .venv