Dans cette configuration, nous allons configurer un python virtualenv
. L'intention
derrière l'utilisation de virtualenv
en tant qu'environnement de développement python est
de séparer les exécutables et les bibliothèques installés sur le système global avec des packages
installés directement dans virtualenv
. En conséquence, on peut
tester une application python donnée avec plusieurs environnements système sur un seul
hôte.
L'installation de virtualenv
sur Debian Linux est aussi simple que :
# apt-get install python-virtualenv
À ce stade, nous sommes en mesure de créer notre premier virtualenv
environnement de développement python
ex. myapp
$ virtualenv --no-site-packages myappExécution de virtualenv avec l'interpréteur /usr/bin/python2Nouvel exécutable python dans myapp/bin/python2Création également d'un exécutable dans myapp/bin/pythonInstallation des outils de configuration, pip...fait.
En utilisant le --no-site-packages
option, nous nous assurons qu'aucun package
global du système ne sera lié à notre nouveau virtualenv
environnement.
Explorons plus en détail ce qui vient de se passer. Tout d'abord,virtualenv
a créé un nouveau répertoire pour servir de conteneur pour
notre myapp
développement.
$ tree -L 2 monapp/monapp/├── bin│ ├── activate│ ├── activate.csh│ ├── activate.fish│ ├── activate_this.py│ ├── easy_install│ ├─ ─ easy_install-2.7│ ├── pip│ ├── pip2│ ├── python -> Python2│ ├── python2│ └── python2.7 -> Python2├── lib│ ├ ── python2.7│ └── python-wheels└── local ├── bin -> /home/debian/myapp/bin └── lib -> /home/debian/myapp/lib7 répertoires, 12 fichiersComme vous pouvez le voir, notre nouveau
virtualenv
environment contient tous les
outils nécessaires pour façonner notre environnement, tels que des binaires python, pip et
easy_install séparés.A ce stade, nous sommes prêts à saisir
virtualenv
environnement :$ cd myapp/$ source bin/activate(myapp)debian@hostname:~/myapp$Une fois que vous entrez
virtualenv
environnement python votre PATH vers
les exécutables binaires va changer :$ echo $PATH/home/debian/monapp/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/gamesEn conséquence, toutes vos commandes python seront exécutées à l'aide de
virtualenv
binaires d'environnement. Utilisezwhich
commande pour localiser votre
chemin complet vers vos binaires python :(myapp)debian@hostname :~/myapp$ which python pip easy_install/home/debian/myapp/bin/python/home/debian/myapp/bin/pip/home/debian/myapp/bin/easy_installMaintenant, nous sommes prêts à installer les packages sans affecter l'environnement global du système
. Par exemple, nous pouvons installerdjango
package local à
uniquement notremyapp
environnement :(myapp)debian@hostname :~/myapp$ pip install djangoTéléchargement/décompression de django Téléchargement de Django-1.8-py2.py3-none-any.whl (6,2 Mo) :6,2 Mo téléchargésInstallation des packages collectés :djangoDjango installé avec succèsNettoyage. ..Tester
django
installation du paquet :(myapp)debian@hostname:~/myapp$ python -c "import django; print(django.get_version())"1.8Tout fonctionne comme prévu. Une fois que vous avez terminé votre travail avec
virtualenv
environnement que vous pouvez quitter en utilisantdeactivate
fonction fournie
dansbin/activate
script :(myapp)debian@hostname :~/myapp$ désactiver debian@hostname :~/myapp$Une tentative d'accès à
django
packages installés dansvirtualenv
l'environnement va maintenant échouer :$ python -c "import django; print(django.get_version())" Traceback (dernier appel le plus récent) :Fichier "", ligne 1, dans ImportError :Aucun module nommé django