ENTORNOS VIRTUALES DE PYTHON | Usando virtualenv

Por Administrador

Te doy la bievenida a un nuevo tutorial. El día de hoy estaremos desarrollando el tema de los entornos virtuales de python. Veremos por qué usarlos, como crearlos, activarlos, instalar paquetes en ellos, y por último desactivarlos. ¿Me acompañas?.

CONTENIDO

  • ¿Qué es un entorno virtual de python?
  • ¿Por qué usar entornos virtuales de python?
  • ¿Cómo instalar virtualenv?
    • ¿Cómo crear un entorno virtual?
    • ¿Cómo activar un entorno virtual?
      • ¿Cómo sabemos que ya se ha activado el entorno virtual?
    • ¿Cómo instalar paquetes o módulos en el entorno virtual?
      • pip freeze
    • ¿Cómo correr un programa usando entornos virtuales en python?
    • ¿Cómo desactivar un entorno virtual de python?

¿Qué es un entorno virtual de python? 

Según Python, «uentorno virtual es un entorno de Python parcialmente aislado que permite instalar paquetes para que los use una aplicación en particular, en lugar de instalarlos en todo el sistema». 

¿Por qué usar entornos virtuales en python?

Si es la primera vez que escuchas sobre un entorno virtual, puedes darte una idea de como funciona de la siguiente manera: supongamos que tenemos un computador en donde se le ha instalado python y además tenemos instaladas librerías como OpenCV, numpy, entre otros… solo por dar un pequeño ejemplo.  

Y es entonces que hemos incursionado en algunos proyectos, en los cuales vamos a trabajar con las mismas librerías pero con versiones diferentes. 

Entonces, ¿qué hacemos?, instalar cierta versión de la librería, probar el código de uno de los proyectos, desinstalar dicha librería y ahora instalarla, pero con otra versión para probar el código de un segundo proyecto? 

¡Esto sería mucho trabajo y nos podría llegar a desesperar!.

Y es en ese preciso momento que llegan los entornos virtuales de python a nuestra salvación. 

Estos nos permitirán crear entornos de python con sus paquetes estándar, permitiendo instalar los paquetes que necesitemos en cada uno de ellos sin que estos interfieran con otros entornos creados, ni con los paquetes ya instalados en todo el sistema. Es decir que estos nos ayudarán a organizar los paquetes que usamos para nuestros proyectos, y de tal modo trabajaremos eficientemente.

¿Cómo instalar virtualenv?

En esta ocación vamos a usar virtualenv para la creación de los entornos virtuales. Este no es un módulo estándar (no viene incluido en python) por lo que necesitaremos instalarlo, para ello vamos a usar pip. Entonces nos dirigimos al símbolo del sistema en windows y digitamos:

pip install virtualenv

Importante: Para este tutorial asumiré que en nuestro computador tenemos instalado Python. Si es que aún no lo tienes instalado puedes dirigirte a este tutorial: Instalar PYTHON ? y OPENCV ?️ en Windows [ Fácil y rápido ].

Esperaremos a que se realice la instalación. Por cierto, si quieres obtener más información sobre virtualenv, puedes dar clic aquí.

Una vez instalado este módulo, podremos crear los entornos virtuales, instalar paquetes en ellos, ejecutar scripts, entre otros. Esto lo veremos a continuación.

¿Cómo crear un entorno virtual?

Lo primero que tenemos que hacer antes de crear el entorno virtual es ubicarnos en directorio donde queramos que se cree dicho entorno. Ya que estamos en el símbolo del sistema, usaremos el comando cd, que nos permitirá movernos al path deseado.

Una vez que estemos ubicados en dicho path, vamos a digitar:

virtualenv nombre_del_entorno_virtual

Es decir que para crear el entorno virtual necesitaremos de virtualenv, seguido del nombre que le queramos dar.

Una vez que se presione enter, se creará el entorno virtual. En el símbolo del sistema tendremos un mensaje indicándonos que este se ha creado exitosamente. Mientras que en el directorio donde lo hemos creado, tendremos una nueva carpeta con el nombre del entorno virtual, y dentro podremos encontrar varias carpetas y archivos.

Voy a mostrarte un ejemplo de este procedimiento a continuación:

Figura 1: Ejemplo de como crear un entorno virtual.

En la figura 1 he enumerado dos líneas. En la número 1, me estoy dirigiendo al directorio en donde deseo crear el entorno virtual, por ello uso el comando cd, para realizar el cambio de directorio. En mi caso voy a crear mi entorno virtual en la carpeta Proyecto1, que está en el escritorio.

Una vez allí voy a proceder con la creación del entorno virtual, para ello he digitado virtualenv p1, que quiere decir que crearemos un entorno virtual llamado p1.

Al dar enter, después de unos segundos nos aparecerá un mensaje el cual indica que el entorno ha sido creado exitosamente.

¿Cómo activar un entorno virtual?

Para activar un entorno virtual, como en pasos anteriores, mediante el símbolo del sistema nos ubicamos en el directorio donde está la carpeta del entorno virtual. Una vez allí digitamos:

.\nombre_del_entorno_virtual\Scripts\activate

Como en nuestro ejemplo ya estábamos ubicados en el directorio del entorno virtual, digitaremos esa línea:

Figura 2: Ejemplo de como activar un entorno virtual.

En la figura 2 podemos ver que ya estamos ubicados en el directorio donde anteriormente creamos el entorno virtual, por lo que procedemos a activarlo. Para ello hemos digitamos .\p1\Scripts\activate, hemos especificado p1 ya que este es el nombre del entorno creado.

¿Cómo sabemos que ya se ha activado el entorno virtual?

Para saber si se ha activado el entorno virtual, debemos fijarnos en la sección izquierda de la siguiente línea luego de haber ingresado la línea de activación, si en esta aparece entre paréntesis el nombre del entorno virtual, quiere decir que ya está activo.

Esto lo podemos apreciar en la figura2, allí podemos ver que se ha activado el entorno y además lo tenemos rodeado de una circunferencia blanca.

¿Cómo instalar paquetes o módulos en el entorno virtual?

Una vez que tenemos activado el entorno virtual, podremos instalar los paquetes o módulos que necesitemos. Esto lo haremos con pip, como si los instaláramos directamente en el sistema, no cambia en nada. La única diferencia es que solo se instalarán en el entorno virtual, ya que este está activo.

Podemos instalar por ejemplo OpenCV, imutils, para ello digitaremos (recuerda que podrías instalar cualquier otro paquete):

pip install opencv-contrib-python

Una vez que se realice la instalación, podemos instalar también imutils (u otro paquete que necesitemos).

pip install imutils

Y de igual manera tendremos que esperar a que se realice la instalación.

Figura 3: Ejemplo de la instalación de paquetes dentro de un entorno virtual.

En la figura 3, seguimos con nuestro ejemplo. En este caso hemos instalado tanto imutils como OpenCV. Y por cierto, no te preocupes por los mensajes en amarillo, estos lo único que indican es que podemos actualizar la versión de pip.

NOTA: Si deseas desinstalar alguno de los paquetes puedes hacerlo con pip uninstall, seguido del nombre del paquete a desinstalar.

pip freeze

Si deseamos saber que paquetes son los que hemos instalado via pip en nuestro entorno virtual (y no solo allí, ya que este comando también lo podemos usar en el sistema directamente), vamos a digitar:

pip freeze

Este comando a más de indicarnos los paquetes ya instalados, también nos muestra la versión de cada uno de ellos.

Podemos usar este comando en el ejemplo que veníamos haciendo:

Figura 4: Ejemplo del uso de pip freeze.

Como puedes ver en la figura 4, una vez ingresado pip freeze, y al dar enter, podremos ver los paquetes instalados.

Tal vez te asombre que no solo tengamos imutils y opencv, sino también numpy, esto es debido a que al instalar opencv también se instala numpy.

¿Cómo correr un programa usando entornos virtuales en python?

Al igual que en los aspectos anteriores, lo que necesitamos es que el entorno esté activo, entonces podremos ejecutar cualquier archivo de python que use las librerías que habíamos instalado.

Por ejemplo supongamos que tenemos el siguiente script llamado redim.py. Este programa tiene como objetivo leer una imagen y visualizarla junto con su redimensionada.

Además este se encuentra dentro de una carpeta que está ubicada en el mismo directorio que el entorno virtual. Aunque recuerda que no es necesario que los programas a ejecutar estén en la misma dirección que el entorno virtual. 

El programa es el siguiente:

import cv2
import imutils

image = cv2.imread('image_02.jpg')

# Escalando una imagen usando imutils.resize
imageOut = imutils.resize(image,width=300)

cv2.imshow('Imagen de entrada',image)
cv2.imshow('Imagen de salida',imageOut)
cv2.waitKey(0)
cv2.destroyAllWindows()

No entraré en detalles sobre este código, por lo que si deseas una explicación más extensa sobre él, te recomiendo seguir el siguiente tutorial: ?️ Como trasladar, rotar, escalar y recortar una imagen | Python – OpenCV.

Ahora, me ubicaré en el directorio donde está presente este programa y lo ejecutaré.

Figura 5: Ejemplo de la ejecución de un programa dentro de un entorno virtual.

Entonces si corremos el programa, podríamos visualizar algo como lo siguiente:

Figura 6: Resultado de la ejecución del programa dentro de un entorno virtual.

Como puedes apreciar, el proceso para ejecutar un programa desde el símbolo del sistema con un entorno virtual es igual a que si lo hiciéramos directamente sobre el sistema operativo.

¿Como desactivar un entorno virtual de Python?

Para desactivar el entorno virtual de python necesitaremos de:

deactivate

Si empleamos este en el ejemplo que hemos desarrollado hasta ahora, tendríamos lo siguiente:

Figura 7: Desactivando el entorno virtual.

Y finalmente como vemos en la figura 7, hemos digitado deactivate, por lo tanto al dar enter, podemos darnos cuenta que (p1) ha desaparecido, y por lo tanto ya no estamos empleando dicho entorno.


Recomendación

Antes de terminar con el post, quisiera contarte como suelo manejar los entornos virtuales. A mí me ha funcionado crear un solo directorio para allí crear todos los entornos virtuales y activarlos dependiendo de la aplicación que proceda a realizar.


Y ahora sí, esto ha sido todo por el post de hoy, espero que te haya gustado y nos vemos en el siguiente. 🙂

p