Encore un blog de GeeK
Article tagué eclipse
pip, virtualenv, virtualenvwrapper et pydev
10/07/10
L’une des difficultés majeures du développement aujourd’hui est la gestion des dépendances et en particulier pour Python l’isolement de l’environnement de développement.
Pour résoudre ce problème, nous allons utiliser :
- pip: un remplaçant d’easy_install bien plus complet.
- virtualenv: permet d’instancier des environnements python isolés.
- virtualenvwrapper: facilite l’utilisation de virtualenv
Installation des outils de développement
Si ce n’est déjà fait, il faut installer un environnement de développement python classique:
~$ sudo aptitude install python-setuptools python-dev build-essential
Nous installons la dernière version de pip:
~$ sudo easy_install pip
Puis nous installons virtualenv et virtualenvwrapper
~$ sudo pip install virtualenv virtualenvwrapper
Il faut maintenant configurer notre environnement en ajoutant au fichier ~/.bahrc
# Python pip / virtualenv / virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs export PIP_VIRTUALENV_BASE=$WORKON_HOME export PIP_RESPECT_VIRTUALENV=true source /usr/local/bin/virtualenvwrapper.sh
Puis nous initialisons l’environnement:
~$ mkdir ~/.virtualenvs ~$ source ~/.bashrc virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/initialize virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/premkvirtualenv virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/postmkvirtualenv virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/prermvirtualenv virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/postrmvirtualenv virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/predeactivate virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/postdeactivate virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/preactivate virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/postactivate virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/get_env_details
Nous sommes maintenant prêts à instancier notre premier environnement.
Création d’un environnement isolé
Il suffit maintenant d’utiliser la commande mkvirtualenv.
~$ mkvirtualenv --no-site-packages myenv New python executable in myenv/bin/python Installing setuptools............done. virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/myenv/bin/predeactivate virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/myenv/bin/postdeactivate virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/myenv/bin/preactivate virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/myenv/bin/postactivate virtualenvwrapper.user_scripts Creating /home/noirbizarre/.virtualenvs/myenv/bin/get_env_details (myenv)~$
L’option –no-site-packages permet d’avoir une installation de python nue, c’est à dire sans aucune des dépendances python ajoutées dans l’installation courante.
Utilisation en ligne de commande
Une fois l’environnement actif, le prompt du shell est préfixé par « (nom de l’environnement) ».
Pour désactiver l’environnement, il suffit d’executer:
(myenv)~$ deactivate ~$
Pour réactiver l’environnement il suffit d’executer
~$ workon myenv (myenv)~$
La liste complète des commandes de virtualenvwrapper est disponible ici.
Utilisation dans Eclipse/Pydev
Pour utiliser cet environnement dans eclipse avec Pydev il suffit d’aller dans Preferences > Pydev > Interpreter Python et d’ajouter l’executable python qui correspond, dans notre cas ~/.virtualenvs/myenv/bin/python.
Sur l’écran qui apparait ensuite, il ne faut selectionner que les chemin qui correspondent à notre environnement (ceux commençant par ~/.virtualenvs/myenv/).
L’environnement apparait ensuite dans la liste des environnement disponibles.
Il suffit ensuite de le sélectionner dans les préférences des projets concernés.
Utilisation de pip
Lorsque l’environnement est actif, pip s’utilise comme apt/aptitude.
# Recherche de paquets (myenv)~$ pip search mypackage # Installation d'un paquet (myenv)~$ pip install mypackage
Lorsque l’environnement est inactif, il est possible de specifier à pip un environnement pour l’installation avec l’option -E:
~$ pip install -E myenv mypackage
Il est possible de dumper tous les modules installé dans un fichier:
~$ pip freeze > requirements
Puis de les recharger d’un coup dans un autre environnement:
~$ pip install -r requirements
Pour plus de détails sur l’utilisation de pip, la page officielle fait office de documentation.




