Desarrollar en un entorno aislado que no interfiera con el resto de desarrollos ni con el host principal es una práctica muy recomendable, incluso me arriesgaría a decir que obligatoria, para todo desarrollador de software. No solo nos permite trabajar en entornos aislados en donde tengamos diferentes módulos instalados, también nos permite utilizar diferentes versiones de un mismo módulo sin que con ellos se produzca fallo alguno.
Para este fin Python dispone de varios sistemas para virtualizar las áreas de trabajo, y en esta entrada del blog veremos como instalar y crear este entorno con virtualenv.
Tabla de contenidos
Instalación Python pip y virtualenv
Lo primero que haremos es instalar pip y a continuación el módulo de entornos virtuales para Python 3.
Centos 7
# Instalamos el repositorio EPEL sudo yum install epel-release # Instalamos Python 34 y el gestor de paquetes python-pip sudo yum install python34 python-pip # Actualizamos pip e instalamos los entornos virtuales pip install -U pip pip install -U virtualenv
Debian
# Actualizamos los repositorios sudo apt-get update # Instalamos pip para Python 3 sudo apt-get install build-essential libssl-dev libffi-dev python-dev sudo apt-get install python3-pip # Ahora los entornos virtuales sudo pip3 install virtualenv
Crear un entorno virtual
Nos ubicamos en el directorio en donde se ejecutará nuestra herramienta. Yo suelo trabajar en el directorio /usr/local/scripts, pero la decisión final la dejo a tu gusto teniendo en cuenta que hay que indicar este en el comando de sistema que crearemos más adelante.
mkdir -p /usr/local/scripts/prueba && cd /usr/local/scripts/prueba
Creamos el entorno virtual sobre el que se ejecutará nuestra herramienta, el cual lamaremos venv_project, pero lo puedes llamar como quieras.
python3 -m virtualenv venv_project
Activar el entorno virtual creado
Activamos el entorno virtual.
source venv_project/bin/activate
El prompt cambia indicando que nos encontramos en el entorno virtual, y por tanto todo módulo de Python que instalemos solo se aplicará a este entorno creado.
(venv_project) sergio@sergio-VirtualBox:/usr/local/scripts/prueba$
Ya podremos instalar cualquier módulo de Python que solo afectará al entorno virtual en que nos encontramos, una vez esté activado. Si este se encuentra desactivado los módulos que se podrán utilizar son los que tenemos instalados en el host en el que nos encontremos.
Desactivar el entorno virtual
Para desactivar el entorno virtual basta con salir de la sesión del host en el que nos encontremos, o escribir la siguiente orden en el entorno virtual:
(venv_project) sergio@sergio-VirtualBox:/usr/local/scripts/prueba$ deactivate