Presentando a VirtualEnvWrapper
virtualenvwrapper es un conjunto de extensiones para virtualenv que te harán la vida más fácil. Entre otras cosas, permite:
- organizar todos tus entornos virtuales desde un espacio centralizado, de un modo más transparente
- comandos para la gestión de tus entornos virtuales (create, delete, copy)
- Cambiar de entorno virtual con un simple comando
- Autocompletar comandos de virtualenv
Podéis encontrar mucha más información sobre virtualenvwrapper en su documentación
Instalando VirtualEnvWrapper
Como se supone que ya tenemos instalada la herramienta pip,
- instalamos virtualenv (si no lo teníamos ya instalado):
miusuario$: sudo pip install virtualenv
miusuario$: sudo pip install virtualenvwrapper
- Ahora editamos la configuración de inicio de nuestro terminal (.bash_profile o .profile) para añadir lo siguiente:
#
directorio donde vivirán los entornos virtuales
export WORKON_HOME=$HOME/.virtualenvs
#
nos aseguramos de que los entornos virtuales esten aislados del directorio site-packages
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=’–no-site-packages’
#
usamos el mismo directorio para virtualenv que para virtualenvwrapper
export PIP_VIRTUALENV_BASE=$
WORKON_HOME
#
permitimos a PIP detectar y usar virtualenv
export PIP_RESPECT_VIRTUALENV=true
#
determinamos el directorio donde se encuentra el script de virtualenvwrapper
source /usr/local/bin/virtualenvwrapper.sh
Deberemos comprobar que el script virtualenvwrapper.sh está donde le hemos indicado con source. Por el momento hemos puesto la dirección habitual donde lo mete pip.
Hay un detalle interesante de esta instalación. Le hemos indicado que nos meta todos los entornos virtuales en el directorio .virtualenvs. Lo podemos llamar de cualquier modo, por supuesto, pero es interesante usar el punto delante (lo convierte en un directorio oculto), para que no nos moleste su contenido (realmente no nos interesa el contenido, ya que mientras usemos el comando freeze, podremos clonar el entorno virtual sin necesidad de copiar el directorio del entorno virtual.
Creando un nuevo entorno virtual
Para crear un entorno virtual, ejecutamos en consola:
miusuario$:mkvirtualenv miNuevoEntorno
Esto creará un nuevo entorno denominado miNuevoEntorno, y además, lo activará para que podamos empezar a trabajar en él.
Activar un entorno virtual
A diferencia de virtualenv, que nos obligaba a entrar en la carpeta que poseía el entorno que queríamos activar, con virtualenvwrapper solo tenemos que recordar su nombre y ejecutar por consola:
miusuario$: workon miNuevoEntorno
Lo que activará el entorno, cosa que podremos verificar por el cambio en el terminal:
(miNuevoEntorno)$:
Desactivar un entorno virtual
Para desactivar el entorno activo, solo tenemos que ejecutar lo siguiente:
(miNuevoEntorno)$:deactivate
Eliminar un entorno virtual
Para eliminar un entorno virtual, ejecutamos:
(miusuario)$:rmvirtualenv miEntornoAEliminar
Guardar instalaciones en el entorno
Supongamos que hemos instalado algunos paquetes en nuestro entorno virtual (activo) a través de pip. Por ejemplo:
(miNuevoEntorno)
$
:pip install django
(miNuevoEntorno)$
:pip install south
(miNuevoEntorno)$
:pip install fabric
Podemos recoger esta información con el comando pip freeze para futuras migraciones:
(miNuevoEntorno)
$
:pip freeze > requirements.txt
recuperando / migrando un entorno
Supongamos que queremos crear un entorno virtual con todas las dependencias de otro ya existente.
Primero, creamos en entorno virtual.
(miusuario)
$
:mkvirtualenv otroNuevoEntorno
Y acto seguido, instalamos las dependencias del fichero que hemos creado anteriormente con el comando freeze.
(otroNuevoEntorno)
$
:pip install -r requirements.txt
Hasta la próxima
Eso es todo, espero que te haya resultado un artículo útil.
por favor agregad como buscar a través de synatic la ubicación de virtualenvwrapper.sh en mi caso de kubuntu es:
/usr/share/virtualenvwrapper/virtualenvwrapper.sh
El punto 2 de Instalando VirtualEnvWrapper me dió problemas pues incluía ’–no-site-packages’ como segundo argumento de mkvirtualenv
Buenas, tuve el mismo problema que el compñero, quizas si pudieras realizar esa corrección, o al menos agregar una nota estaría de lujo para quien caiga por estos lados en busca de tu buen consejo 🙂 🙂 🙂 🙂