En esta configuración, configuraremos un python virtualenv
. La intención
detrás del uso de virtualenv
como un entorno de desarrollo de python es
para separar los archivos ejecutables y las bibliotecas instalados en el sistema global con paquetes
instalados directamente dentro de virtualenv
. Como resultado, uno puede
probar una aplicación python determinada con múltiples entornos de sistema en un solo
host.
La instalación de virtualenv
en Debian Linux es tan simple como:
# apt-get install python-virtualenv
En esta etapa, podemos crear nuestro primer virtualenv
python
entorno de desarrollo, por ejemplo. 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.
Mediante el uso de --no-site-packages
nos aseguramos de que ningún sistema
paquetes globales se vincule a nuestro nuevo virtualenv
ambiente.
Exploremos con más detalle lo que acaba de suceder. En primer lugar,virtualenv
ha creado un nuevo directorio para actuar como un contenedor para
nuestra myapp
desarrollo.
$ 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
Como puedes ver nuestro nuevo virtualenv
El entorno contiene todas las
herramientas necesarias para dar forma a nuestro entorno, como archivos binarios independientes de python, pip y
easy_install.
En esta etapa estamos listos para ingresar a virtualenv
entorno:
$ cd myapp/ $ source bin/activate (myapp)debian@hostname:~/myapp$
Uno ingresa virtualenv
entorno de Python, su RUTA a
ejecutables binarios cambiará:
$ echo $PATH /home/debian/myapp/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Como resultado, todos sus comandos de python se ejecutarán usando virtualenv
binarios ambientales. Usa which
comando para ubicar su
una ruta completa a sus archivos binarios de 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
Ahora, estamos listos para instalar paquetes sin afectar el entorno global del sistema
. Como ejemplo podemos instalar django
paquete local para
solo nuestra myapp
entorno:
(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...
Prueba django
instalación del paquete:
(myapp)debian@hostname:~/myapp$ python -c "import django; print(django.get_version())" 1.8
Todo está funcionando como se esperaba. Una vez que termine su trabajo con virtualenv
entorno del que puede salir usando deactivate
función provista
dentro de bin/activate
guión:
(myapp)debian@hostname:~/myapp$ deactivate debian@hostname:~/myapp$
Un intento de acceder a django
paquetes instalados dentro devirtualenv
el entorno ahora fallará:
$ python -c "import django; print(django.get_version())" Traceback (most recent call last): File "", line 1, in ImportError: No module named django