In questa configurazione imposteremo un virtualenv
python . L'intenzione
dietro l'uso di virtualenv
poiché un ambiente di sviluppo Python è
separare gli eseguibili e le librerie installate nel sistema globale con i pacchetti
installati direttamente all'interno di virtualenv
. Di conseguenza, è possibile
testare una determinata applicazione Python con più ambienti di sistema su un singolo
host.
L'installazione di virtualenv
su Debian Linux è semplice come:
# apt-get install python-virtualenv
A questo punto siamo in grado di creare il nostro primo virtualenv
python
ambiente di sviluppo es. myapp
$ virtualenv --no-site-packages myapp Running virtualenv with interpreter /usr/bin/python2 New python executable in myapp/bin/python2 Also creating executable in myapp/bin/python Installing setuptools, pip...done.
Usando i --no-site-packages
opzione ci assicuriamo che nessun sistema
pacchetto globale sarà collegato al nostro nuovo virtualenv
ambiente.
Esploriamo più in dettaglio cosa è appena successo. Innanzitutto,virtualenv
ha creato una nuova directory che funge da contenitore per
la nostra myapp
sviluppo.
$ tree -L 2 myapp/ myapp/ ├── bin │ ├── activate │ ├── activate.csh │ ├── activate.fish │ ├── activate_this.py │ ├── easy_install │ ├── easy_install-2.7 │ ├── pip │ ├── pip2 │ ├── pip2.7 │ ├── python -> python2 │ ├── python2 │ └── python2.7 -> python2 ├── lib │ ├── python2.7 │ └── python-wheels └── local ├── bin -> /home/debian/myapp/bin └── lib -> /home/debian/myapp/lib 7 directories, 12 files
Come puoi vedere il nostro nuovo virtualenv
environment contiene tutti gli
strumenti necessari per modellare il nostro ambiente, come python, pip e
easy_install binari separati.
A questo punto siamo pronti per inserire virtualenv
ambiente:
$ cd myapp/ $ source bin/activate (myapp)debian@hostname:~/myapp$
Uno inserisci virtualenv
ambiente python il tuo PERCORSO a
gli eseguibili binari cambieranno:
$ echo $PATH /home/debian/myapp/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Di conseguenza, tutti i tuoi comandi python verranno eseguiti utilizzando virtualenv
binari di ambiente. Usa which
comando per individuare il tuo
un percorso completo ai tuoi binari 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_install
Ora siamo pronti per installare i pacchetti senza influire sull'ambiente
del sistema globale. Ad esempio possiamo installare django
pacchetto locale per
solo la nostra myapp
ambiente:
(myapp)debian@hostname:~/myapp$ pip install django Downloading/unpacking django Downloading Django-1.8-py2.py3-none-any.whl (6.2MB): 6.2MB downloaded Installing collected packages: django Successfully installed django Cleaning up...
Prova django
installazione del pacchetto:
(myapp)debian@hostname:~/myapp$ python -c "import django; print(django.get_version())" 1.8
Tutto funziona come previsto. Una volta terminato il tuo lavoro con virtualenv
ambiente a cui puoi uscire usando deactivate
funzione fornita
all'interno di bin/activate
sceneggiatura:
(myapp)debian@hostname:~/myapp$ deactivate debian@hostname:~/myapp$
Un tentativo di accedere a django
pacchetti installati all'interno divirtualenv
l'ambiente ora fallirà:
$ python -c "import django; print(django.get_version())" Traceback (most recent call last): File "", line 1, in ImportError: No module named django