Environnement virtuel en python

Python est un langage qui possède de nombreuses librairies. Il peut arriver que vous travailliez sur plusieurs projets à la fois nécessitant chacun des librairies de version différente. Le cas Django est souvent problématique: pour un projet ça sera Django 1.8 et l'autre Django 2.1 .

Alors comment travailler sur une même lib mais avec des versions différentes?

C'est possible grâce au packet virtualenv

Installation d'un venv avec python 3.3

Si vous avez une version python > 3.3 vous pouvez suivre les commandes suivantes:

cd /home/olivier
mkdir venv
cd /home/olivier/venv
python3 -m venv eboutique --without-pip
source eboutique/bin/activate
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
deactivate
source eboutique/bin/activate
pip --version

Autres méthodes avec python 2

Installer virtualenv avec pip

Utilisons pip pour installer notre packet:

pip install virtualenv

Créer un environnement avec virtualenv

Nous pouvons maintenant créer notre environnement, pour cela restez au niveau de votre home et lancez la commande suivante:

olivier@bigone:~$ virtualenv ap
New python executable in ap/bin/python
Installing setuptools, pip...done.

Vous pouvez créer votre dossier de configuration où bon vous semble:

Exemple:

olivier@bigone:~$ virtualenv data/app

Après l'installation, vous pouvez explorer le dossier de votre environnement:

olivier@bigone:~$ ls ap/
bin  include  lib

Le dossier bin contient les exécutables pour créer votre environnement virtuel, c'est ici que se trouve l'interpréteur python.

Le dossier include contient les entêtes de l'environnement.

Le dossier lib contient les librairies tout simplement.

Activer l'environnement virtuel

Pour lancer votre environnement virtuel, il vous suffit de lancer l'executable activate du dossier bin :

olivier@bigone:~$ source ap/bin/activate

Une fois la commande executée, l' environnement devrait s'afficher dans votre terminal :

(ap)olivier@bigone:~$

Créer un environnement avec une version de python différente

Si vous voulez changer la version de python dans votre environnement, vous pouvez utiliser le paramètre -p suivi du chemin de python

Exemple:

virtualenv -p /usr/bin/python3 p3

Pour info vous pouvez trouver le chemin de python3 avec la commande which :

olivier@bigone:~$ which python3
/usr/bin/python3

Sortir du virtuelanv

Pour sortir de votre environnement virtuel, il vous suffit de lancer la commande:

deactivate

virtualenvwrapper

On remarque qu'utiliser les environnements virtuels peut être assez lourd au quotidien lorsqu'il s'agit de les activer sur plusieurs terminaux ou tout simplement basculer d'un environnement à l'autre.

Comme souvent des développeurs ont pensé à vous et vous proposent un soft qui vous facilitera l'utilisation des virtualenv: virtualenvwrapper

Installons virtualenvwrapper:

pip install --user virtualenvwrapper

Ensuite ajoutez les commandes suivantes dans votre fichier .bashrc

export WORKON_HOME=~/.virenv
mkdir -p $WORKON_HOME
source ~/.local/bin/virtualenvwrapper.sh

Des nouvelles commandes seront disponible pour créer vos virtuel env.

mkvirtualenv votre_projet
workon votre_projet
rmvirtualenv votre_projet

La première commande créera votre environnement naturel, la deuxieme permettra de basculer dessus et la dernière la détruira.

Automatiser la création d'un venv

A mettre dans votre .zshrc par exemple:

    # magic function to activate or create py3 virtualenv
xactivate () {
        if [[ -d ./.venv/ ]]; then
                ${SPEC_PYTHON:-python3} -m venv .venv --upgrade
                source ./.venv/bin/activate
        else
                ${SPEC_PYTHON:-python3} -m venv .venv --without-pip
                curl https://bootstrap.pypa.io/get-pip.py | ./.venv/bin/python
                source ./.venv/bin/activate
        fi
}


Apprendre programmation cours python 3
Django internet web - Documentation débutant et expert
Version anglaise