Environnements virtuels pour Python : VirtualEnvWrapper

11 Avr 2016 | Programmation, Python | 0 commentaires

Depuis le début de l’année j’ai commencé un nouveau projet personnel avec Python pour le cœur du projet et Django pour l’interface web. Pour éviter de mélanger les librairies que j’utilise avec celles de mon OS et de mes autres projets, j’utilise VirtualEnvWrapper, un complément à VirtualEnv qui permet d’isoler votre projet et d’éviter ainsi la mise à jour malencontreuse d’une librairie ou de pouvoir utiliser une version plus récente que celle installée sur votre système.

La mise en place et la configuration de VirtualEnvWrapper m’ayant demandé pas mal de recherches, je me suis dit qu’un article sur ce sujet pourrait aider quelques-uns d’entre vous.Si vous êtes sous Windows, cet article n’est malheureusement pas pour vous, VirtualEnvWrapper ne fonctionnant que sur les systèmes Unix (Linux, Mac, etc.). N’ayant que mon PC avec Ubuntu sous la main, je vais vous expliquer l’installation et le fonctionnement de base sur ce système, mais vous pourrez facilement trouver les commandes correspondantes pour les autres distributions Linux ou pour Mac.

Installer VirtualEnvWrapper

Avant d’utiliser VirtualEnvWrapper nous devons l’installer. Pour cela nous allons utiliser Pip (ou Pip3 pour Python3) qui est l’outil principal gérant les packages Python. Si vous ne l’avez pas encore installé, saisissez la commande suivante dans votre terminal :

sudo apt-get install python3-pip

Puis nous passons à l’installation de VirtualEnvWrapper avec la commande suivante :

pip3 install --ignore-installed virtualenvwrapper

Un petit peu de configuration est nécessaire pour pouvoir l’utiliser facilement. Ouvrez le fichier .bashrc de votre utilisateur (vim ~/.bashrc) et ajouter à la fin du fichier les lignes suivantes :

export WORKON_HOME=~/.virtualenvs
mkdir -p $WORKON_HOME
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source ~/.local/bin/virtualenvwrapper.sh

Il faut vérifier où se trouve le fichier virtualenvwrapper.sh, dans certains cas il se trouve comme indiqué ci-dessus et d’autres fois dans /usr/local/bin/virtualenvwrapper.sh. N’oubliez pas d’adapter votre fichier .bashrc.

Pour recharger le fichier .bashrc saisissez la commande suivante ou fermer votre session utilisateur et connectez-vous à nouveau :

source ~/.bashrc
Animation de l'installation de VirtualEnvWrapper

Nous pouvons maintenant passer à l’utilisation proprement dite.

Utiliser VirtualEnvWrapper

Pour créer un nouvel environnement virtuel, nous utilisons la commande mkvirtualenv suivie du nom de l’environnement virtuel désiré :

mkvirtualenv mon_env

Si lors de la commande ci-dessus vous obtenez l’erreur ERROR: virtualenvwrapper could not find virtualenv in your path, modifiez votre fichier .bashrc et ajoutez export PATH=$PATH:$HOME/.local/bin juste au dessus de la ligne source $HOME/.local/bin/virtualenvwrapper.sh de manière à ce que la fin de votre fichier .bashrc ressemble à cela :

export WORKON_HOME=~/.virtualenvs
mkdir -p $WORKON_HOME
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export PATH=$PATH:$HOME/.local/bin
source $HOME/.local/bin/virtualenvwrapper.sh

Par défaut l’environnement virtuel est créé avec la version de Python par défaut ainsi que toutes les librairies déjà installées sur votre système. Nous allons y remédier de suite en choisissant la dernière version de Python :

mkvirtualenv mon_env -p /usr/bin/python3.5

Avec l’option –no-site-packages vous indiquez que vous ne voulez pas intégrer les librairies de votre système, cela vous permettra de choisir celles que vous voulez installer pour votre projet et surtout la version que vous voulez utiliser :

mkvirtualenv mon_env --no-site-packages

Votre environnement virtuel étant en place, nous devons l’activer avant d’y installer nos librairies :

workon mon_env

Ceci étant fait, le nom de votre environnement virtuel s’affiche entre parenthèse au début du prompt de votre terminal :

(mon_env)etienne@cybernaute:~$

Pour sortir de l’environnement virtuel, il vous suffit de saisir la commande deactivate.

Pour vérifier le bon fonctionnement de l’environnement virtuel, saisissez la commande python sans être dans un environnement virtuel puis saisissez la même commande une fois l’environnement activé, vous verrez que vous n’avez pas la même version de Python par défaut :

etienne@cybernaute:~$ python
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Ctrl+d pour sortir de l’interpréteur Python puis activation de l’environnement virtuel :

etienne@cybernaute:~$ workon mon_env
(mon_env)etienne@home:~$ python
Python 3.5.0+ (default, Oct 11 2015, 09:05:38) 
[GCC 5.2.1 20151010] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Si vous ne vous souvenez plus du nom de vos environnements virtuels, saisissez simplement la commande workon qui vous les listera :

etienne@cybernaute:~$ workon 
django-1.9
mon_env
test

Finalement, il peut vous arriver de ne plus avoir besoin d’un environnement virtuel et de vouloir libérer un peu d’espace sur votre disque dur. Vous pouvez facilement le supprimer avec la commande rmvirtualenv comme suit :

rmvirtualenv mon_env
Animation de l'utilisation de VirtualEnvWrapper

Et vous, utilisez-vous les environnements virtuels vos projets en Python ? Et lesquels ? Partagez vos expériences avec nous dans les commentaires ci-dessous.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée.