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 }