#######################
VENV
#######################

---------------------
Vous avez dit virtuel ?
---------------------

Quand on commence à beaucoup programmer, il est rapide d'accumuler plusieurs projets en cours de développement sur sa machine. 
Certains sont vieux, d'autres récents... Mais ils ont tous un point commun:  ils utilisent tous des bibliothèques différentes, avec forcément des versions différentes... voire incompatibles.

*Le jour où ça casse, c’est le chaos.*

La solution: des environnements virtuels, des "Python" isolés de l’OS, et séparés les uns des autres pour chaque projet.

---------------------
Installation et usage
---------------------
Depuis le python 3.3, une seule étape ! Pour chacun de vos projets, créer un environnement virtuel devient simple :
::
    venv /path/vers/projet/env_nom_du_projet
    
Venv va créer un dossier (à l'emplacement désigné) contenant un environnement complet : l’interpreteur Python, les librairies, les commandes, etc. C’est votre installation *isolée*.

Pour travailler avec votre environnement isolé:

 - sous Unix, il faut exécuter: /path/vers/projet/env_nom_du_projet/bin/activate.
 - sous Windows, il faut exécuter: C:\\path\\vers\\projet\\env_nom_du_projet\\Scripts\\activate.bat
    
Votre prompt de ligne de commande va changer pour indiquer que vous êtes dans un environnement virtuel !

Vous pouvez sortir de l’environnement virtuel avec la commande "deactivate".

Vous pouvez aussi exécuter python via un chemin relatif ou absolu vers l'interpréteur.

--------------------------------
Quelques astuces avec venv
--------------------------------
Venv depuis un script extérieur
#####################################

Si vous êtes dans un script extérieur et que vous voulez appeler un de vos scripts avec ce virtualenv, vous n’avez pas besoin de l’activer pour que ça marche. Il suffit d’appeler le script en le passant en paramètre à l’interpréteur de l’env. Par exemple:
::
    /path/vers/projet/env_nom_du_projet/bin/python mon_script.py
Le script sera alors exécuté dans le cadre du virtualenv.

--------------------------------
Exercice
--------------------------------
Configurer un nouvel environnement virtuel pour un projet et l'activer.
