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
virtualenvenvironment 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
virtualenvenvironnement :$ cd myapp/$ source bin/activate(myapp)debian@hostname:~/myapp$Une fois que vous entrez
virtualenvenvironnement 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
virtualenvbinaires d'environnement. Utilisezwhichcommande 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 installerdjangopackage local à
uniquement notremyappenvironnement :(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
djangoinstallation 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 utilisantdeactivatefonction fournie
dansbin/activatescript :(myapp)debian@hostname :~/myapp$ désactiver debian@hostname :~/myapp$Une tentative d'accès à
djangopackages installés dansvirtualenvl'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