full stack developer

Trabajar con entornos virtuales en Django

curso-django 2020-08-20 07:09:33

Una de las grandes herramientas que nos ofrece python es pip, su administrador de paquetes que realmente nos las hace fácil a la hora de instalar diferentes paquetes para usar en nuestros desarrollos.

Sin embargo pip nos puede también representar un inconveniente ya que éste solo puede tener instalada una versión del mismo paquete.

Quizás si tú eres nuevo en el mundo del desarrollo o si recién te estás iniciando puedes llegar a pensar que esto no representa un gran problema, pero sí lo es.

Imagina que hoy instalas la última versión de un paquete, y luego actualizas éste para obtener alguna nueva funcionalidad, podría ser que tus códigos presenten conflictos con la nueva versión del paquete.

Otro caso bastante común es cuando debes modificar códigos de terceros que fueron realizado con otras versiones de los paquetes que tú tienes instalados en tu ordenador.

Para eso es que en Django existen los llamados entornos virtuales, lo que nos permiten gestionar una versión específica de los paquetes según nuestras necesidades.

Veamos cómo funcionan éstos, lo primero que vamos a hacer será instalar éstos, asumiendo que ya tienes python y pip instalados en tu ordenador, y que estas usando windows, la instalación la puedes realizar con el siguiente comando

pip3 install virtualenvwrapper-win

Ten en cuenta que si estás trabajando en otros sistemas operativos como Linux o Mac la instalación será diferente, sin embargo la forma de usar virtualenvwrapper es muy parecida en todos los sistemas operativos.

Una vez que tengas instalado virtualenvwrapper vamos a crear nuestro primer entorno virtual al cual llamaremos django_primer_entorno, para eso ejecutamos la siguiente instrucción desde nuestra consola de comandos

mkvirtualenv django_primer_entorno

Con esto nuestro entorno será creado y además éste quedará activo (es decir, quedaremos situado en ese entorno). Esto lo podemos apreciar fácilmente ya nuestro prompt quedará modificado comenzando éste con el nombre del entorno virtual activo entre paréntesis, como por ejemplo:

(django_primer_entorno) C:\>

Allí puedes ver como nuestro "django_primer_entorno" aparece al comienzo (obviamente el path, en este caso "C:\", dependerá en donde te encuentres situado en el sistema de archivos)

Aprendamos ahora otros comandos muy útiles a la hora de trabajar con entornos virtuales, los que te recomiendo que memorices, éstos son deactivate, workon y rmvirtualenv

Veamos ahora el primero de ellos, el comando deactivate, éste te permite salir del entorno virtual actual (el entorno activo)

, luego de ejecutar este comando veremos que ya no aparecerá en nuestro ejemplo el "(django_primer_entorno)" que nos indicaba que era el entorno activo, y el prompt pasará nuevamente a estar formado solo por el path actual (ejemplo "C:\").

Supongamos ahora que queremos volver a activar nuestro entorno, para eso hacemos uso del comando workon seguido por el nombre del entorno a activar, en nuestro ejemplo sería:

workon django_primer_entorno

Luego de ejecutado veremos que nuevamente nuestro prompt reflejará nuestro entorno

Creemos ahora un segundo entorno virtual llamado "django_segundo_entorno" con el comando

mkvirtualenv django_segundo_entorno

Como es de esperar, el entorno es creado y quedaremos situado en el (nota que mkvirtualenv además de crear el nuevo entorno desactivo el entorno actual que teníamos y activó el nuevo entono, recuerda que esto siempre lo puedes ver en el prompt).

Supongamos ahora que queremos listar los entornos existentes, para eso usamos nuevamente el comando workon pero sin especificar parámetros:

workon

Esto nos mostrara una lista, en nuestro caso ésta mostrará nuestros entornos "django_primer_entorno" y "django_segundo_entorno" (para movernos a otro entorno bastara con ejecutar workon nombre-entorno como explicamos anteriormente)

Finalmente contamos con el comando rmvirtualenv, el cual nos permite eliminar un entorno que especifiquemos como parámetro, por ejemplo:

rmvirtualenv django_segundo_entorno




walterdiaz.dev | full stack developer