VirtualenvWrapper: Tu Virtualenv, vitaminado
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
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 miNuevoEntornoEsto 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 miNuevoEntornoLo 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)Podemos recoger esta información con el comando pip freeze para futuras migraciones:$:pip install django (miNuevoEntorno)$:pip install south (miNuevoEntorno)$:pip install fabric
(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.¿Te ha gustado este artículo? No te cortes, déjame un comentario y ayúdame a compartirlo 😉
Comentarios
Para comentar necesitas una cuenta de GitHub.
3 comentarios del blog anterior
Andrés Eduardo García Márquez · 11 ene 2017
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
spideep · 14 jun 2019
El punto 2 de Instalando VirtualEnvWrapper me dió problemas pues incluía ’–no-site-packages’ como segundo argumento de mkvirtualenv
Pancho · 27 ago 2020
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 :) :) :) :)