Que es virtualenvwrapper y pip, para que sirven y como los uso?

¿Que es virtualenvwrapper?

Virtualenvwrapper es una herramienta que sirve para crear entornos aislados de desarrollo en python, en cristiano… es una herramienta que nos facilita tener varias versiones de un mismo programa, librería, framework o lo que sea, pero enfocado al lenguaje de programación python… por ejemplo, tengo 3 entornos virtuales, y en los tres entornos o (virtualenvs) tengo 3 versiones de django distintas, en la primera django 1.0 en la segunda la 0.96 y en la tercera la 1.4, es como si tuviéramos tres maquinas distintas, pero en una sola.

¿Ok vale, pero para que me sirve esto?

Simple los entornos virtuales o virtualenvs, nos sirven para probar una aplicación en distintos entornos, sin modificar los programas que verdaderamente tienes en tu maquina, por ejemplo, al crear un entorno virtual todo lo que instalemos estando dentro del entorno virtual quedara disponible solo en el entrono virtual, es decir, si en mi maquina tengo Django 1.1, al entrar al virtualenv puedo tener Django 1.3 o 1.4, sin que esto entre en conflicto con el que esta instalado fuera del entorno virtual.

Bien… ¿entonces como se usa?

Antes de decir como se usa virtualenv, vamos a ver como instalarlo en la maquina.

Primero debemos instalar easy-install, esto se instala con el siguiente paquete:

sudo aptitude install python-setuptools

despues de haber termminado la instalación de python-setuptools… instalaríamos pip

sudo easy_install pip

cuando termine de instalar pip que es como un yum o un apt-get instalaríamos virtualenvwrapper que nos facilita la vida al crear entornos virtuales, para instalarlo hariamos los siguiente:

sudo pip install virtualenvwrapper

¿Porque virtualenvwrapper y no solo virtualenv?

Virtualenvwrapper es una herramienta que automatiza el trabajo que hace virtualenv, en otras palabras, todo es mas rápido con virtualenvwrapper.

Listo, ya tengo instalado virtualenvwrapper… ¿y ahora que?

Lo que nos falta es crear un entrono virtual que se hacer con la siguiente linea

mkvirtualenv nombre_de_tu_entorno_virtual

que mostrara una salida como la siguiente:


New python executable in nombre_de_tu_entorno_virtual/bin/python
Installing setuptools............done.
Installing pip...............done.
virtualenvwrapper.user_scripts creating /home/server-axiacore-andresito/.virtualenvs/nombre_de_tu_entorno_virtual/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/server-axiacore-andresito/.virtualenvs/nombre_de_tu_entorno_virtual/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/server-axiacore-andresito/.virtualenvs/nombre_de_tu_entorno_virtual/bin/preactivate
virtualenvwrapper.user_scripts creating /home/server-axiacore-andresito/.virtualenvs/nombre_de_tu_entorno_virtual/bin/postactivate
virtualenvwrapper.user_scripts creating /home/server-axiacore-andresito/.virtualenvs/nombre_de_tu_entorno_virtual/bin/get_env_details

Excelente, ya tienes tu entorno virtual, ahora hay que interactuar con el.
Y la mejor forma de hacerlo es entrando en el con el siguiente comando

workon nombre_de_tu_entorno_virtual

al hacer esto, inmediatamente cambia el prompt del terminal algo parecido a esto:

(nombre_de_tu_entorno_virtual)tu_usuario@nombre_de_tu_maquina:~$

ya estamos dentro del entorno virtual, y para ir a la raíz del entorno debemos teclear la siguiente linea:

cdvirtualenv

después de oprimir la tecla enter virtualenvwrapper nos envía directamente a la raíz del entorno.

Al teclear el comando ls dentro del entorno nos mostrara una estructura de carpetas parecida a la siguiente.

bin  include  lib  local 

para ver que esta instalado en nuestro virtualenv usaríamos el siguiente comando:

pip freeze

que por ahora tendría una salida como:

wsgiref==0.1.2

Ahora bien, si queremos instalar la ultima versión del cms merengue digitaríamos esto en consola:

pip install merengue

después de que pip termine de instalar merengue con sus dependencias podemos volver a escribir el comando pip freeze para saber que fue instalado junto con merengue, la salida de este comando seria distinta a la ultima vez:

Warning: cannot find svn location for django-inlinetrans==0.4.12bdev-r70
BeautifulSoup==3.2.0
Django==1.3.1
PIL==1.1.7
South==0.7.3
cmsutils==0.6.6
cssutils==0.9.9
django-ajax-selects==1.1.4
django-announcements==0.1.2
django-autoreports==0.8.4
django-classy-tags==0.3.0
django-compressor==0.5.3
django-configfield==0.1.0-beta
django-debug-toolbar==0.9.4
django-extensions==0.5
django-form-admin==0.3.2
django-genericforeignkey==0.60.4
## FIXME: could not find svn URL in dependency_links for this package:
django-inlinetrans==0.4.12bdev-r70
django-inplaceedit==0.81
django-mptt==0.4.2
django-notification==0.1.5
django-oembed==0.1.3
django-oot==0.8.4
django-pagination==1.0.7
django-stdfile==0.5
django-tagging==0.3.1
django-threadedcomments==0.5.3
django-transmeta==0.6.6
encutils==0.9
feedparser==5.1
httplib2==0.7.2
johnny-cache==0.3.3
merengue==0.8.0
oauth2==1.5.211
python-twitter==0.8.2
recaptcha-client==1.0.6
searchform==0.1.3dev
simplejson==2.3.2
sorl-thumbnail==11.12
template-utils==0.4p2
transhette==0.5.10
wsgiref==0.1.2

Ahora con este ejemplo practico, sabemos que los entornos virtuales sirven para tener distintas versiones de librerias y frameworks, sin que causen conflicto alguno en nuestra maquina y que pip es un administrador de paquetes parecido a apt o yum.

Eliminando software con pip

Cuando quieras eliminar software que halla sido instalado con pip la forma de hacer sera escribiendo lo siguiente desde un terminal:


pip uninstall nombre_del_paquete

para saber mas comandos y tener una vision mas amplia sobre pip puedes ir a la web del proyecto:

http://www.pip-installer.org/en/latest/index.html

Salir de un entorno virtual

Cuando queramos salir de nuestro entorno virtual, es decir, desactivar el entorno, para poder trabajar en otras tareas que no tienen nada que ver con virtualenv, esta tarea se hace con el siguiente comando.


deactivate

Este apartado fue sugerido por uno de los comentarios de este post, doy mil gracias al lector, la verdad se me había pasado.

Para entender mejor este comando pueden entrar al link que nos dejo el lector.

http://stackoverflow.com/questions/990754/how-to-leave-a-python-virtualenv

 

Ver lista de entornos virtuales creados

Muchas veces tenermos varios entornos virtuales creados, la forma de ver los entorno virtuales es escribiendo el siguiente comando en una terminal:


lsvirtualenv

al introducir el anterior comando se mostrara una lista de los entornos virtuales creados.

Eliminando un entorno virtual

Finalmente cuando quieras eliminar un entorno virtual lo unico que tienes que hacer el escribir en un terminal es lo siguiente:


rmvirtualenv nombre_del_entornovirtual

Como pudiste averte dado cuenta los comandos que proporciona virtualven son muy parecidos a los comandos de UNIX asi que si estas aconstumbrado a trabajar en ambientes UNIX seguro entenderas rapidamente los comandos que nos brinda virtualenvwrapper.

Andrewnix

Advertisements

8 thoughts on “Que es virtualenvwrapper y pip, para que sirven y como los uso?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s