virtualenv et virtualenvwrapper
Pour mieux gérer ses projets python, les dépendances qui existent entre les packages, les différentes versions d'un package ... il y a pas mieux que Virtualenv.
Virtualenv permet de créer des environnements python virtuel, bref au lieu d'avoir un seul site-packages ou (dist-packages sur python2.6) dans lequel tout les packages sont stockés, virtualenv permet tout simplement d'en créer plusieurs.
L'installation se fait via un easy_install:
$ easy_install virtualenv virtualenvwrapper
Virtualenvwrapper est une suite de commandes qui facilitent l'utilisation de virtualenv. Avant de se lancer dans le vif du sujet il faut configurer virtualenvwrapper:
Ajouter les lignes ci dessous au fichier ~/.bashrc:
source /usr/local/bin/virtualenvwrapper.sh
export WORKON_HOME=/home/amine/projects
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
puis executer le fichier: $ source ~/.bashrc
Une fois configuré on peut attaquer notre premier projet, je prendrai comme exemple un projet django, pour cela on va créer un nouvel environnement en utilisant Virtualenvwrapper:
$ mkvirtualenv exemple
ou
$ mkvirtualenv exemple --no-sitepackages
pour accéder au répértoire principale de l'environnement:
$ cdvirtualenv
dedans on crée un fichier requirements.txt avec tout les utilitaires dont on a besoin, exemple:
django==1.2
python-openid
-e git+http://github.com/sciyoshi/pyfacebook.git#egg=pyfacebook
on installe nos package avec:
$ pip install -r requirements.txt
si vous avez des problèmes avec pip, vous pouvez indiquer explicitement l'environnement.
pip install -r requirements.txt -E exemple
où exemple et notre virtualenv.
Une fois le projet terminé pip permet de générer un requirements.txt. ce qui est très utile pour réinstaller tout l'environnement sur son serveur.
pip freeze > requirements.txt
les commandes disponibles sur virtualenvwrapper sont:
mkvirtualenv: crée un nouveau virtualenv
rmvirtualenv: supprime un virtualenv
workon: pour changer de virtualenv
add2virtualenv (add external packages in a .pth file to current virtualenv)
cdsitepackages: accède au répertoire site-packages de l'environnement actuellement activé.
cdvirtualenv: accède à la racine l'environnement actuellement activé.
deactivate: permet de désactiver l'environnement actuel.
Pour plus d'infos: virtualenvwrapper, pip, virtualenv et virtualenvwrapper

