¿Qué es un ambiente virtual? | Virtualenv

¿Alguna vez te has preguntado lo que es un ambiente virtual? Si es así, hoy llegó el día en que por fín lo entenderás. Hoy entenderás que son, cuando y como usarlos. Si quieres entenderlo todo, vamos, sigue leyendo!


¿Qué es un ambiente virtual?

Un ambiente virtual, es una herramienta que nos permite crear un ambiente aislado para cada uno de nuestros proyectos, permitiéndonos así tener dependencias únicas para cada uno de ellos. A ver, te daré un ejemplo a ver si lo puedes entender un poco mejor:

Si tenemos dos proyectos, uno llamado «hola.py» y el otro llamado «adios.py», no podemos esperar que ambos necesiten las mismas dependencias, no podemos ni siquiera esperar que ambos necesiten la misma versión de python. Nuestra solución sería un ambiente virtual, ya que, este nos permite instalar diferentes dependencias e incluso diferentes versiones de las mismas dependecias para cada uno de los proyectos.

Debes estar preguntándote por qué esto es importante, ¿no? Ok, para poder explicarte por qué es importante primero debo explicarte como es que funcionan, entonces vamos a eso:

¿Cómo funcionan los ambientes virtuales?

Cuando instalamos algo con pip, esto se instala directamente en la carpeta de binarios de nuestra computadora. Cuando creamos un ambiente virtual, lo que estamos haciendo es crear una carpeta dentro del directorio de nuestro proyecto, y cuando activamos este ambiente, todos lo que instalemos se instalará en esta nueva carpeta.

Es decir que un ambiente virtual es como una nueva carpeta de binarios para cada uno de nuestros proyectos. ¿Sí lo entiendes? Espero que sí, si no es así, déjame tus dudas en los comentarios y yo sin duda te las responderé.

Ahora sí podemos hablar de la importancia de estos:

¿Por qué es importante usar ambientes virtuales?

Cuando tenemos muchos proyectos es muy probable que nos encontremos con conflictos entre dependencias, también es probable que necesitemos diferentes versiones de un mismo módulo, y con esto podemos solucionarlo muy fácilmente. Entonces podemos decir que los ambientes virtuales son importantes porque nos ayudan a evitar conflictos entre todos nuestros programas. ¿Te parece si seguimos con nuestro ejemplo?

Ahora quiero que imagines que para nuestro proyecto «hello.py» necesitamos correr flask 1.5, y en nuestro proyecto «adios.py» necesitamos flask 2.0, ¿Cómo harías para poder correr alguno? ¿Desinstalarías flask 2.0 cuando necesitas el 1.5, o desinstalarías el 1.5 cuando necesitas el 2.0? ¿No crees que esto sería un poco tedioso? Mejor instalamos un ambiente virtual para cada uno de nuestros proyectos e instalamos la versión que necesitamos para cada uno de ellos, créeme, es muchísimo más cómodo.

Ahora sí, llegó el momento, ahora te enseñaré como usar los ambientes virtuales, vamos!

¿Cómo usar un ambiente virtual?

Primero debemos descargar el módulo virtualenv, para ello vamos a nuestra consola y ponemos lo siguiente:

pip install virtualenv 

Una vez lo hayamos instalado ya tenemos la mayor parte del trabajo hecho, ahora vamos al directorio de alguno de nuestros proyectos, yo iré a uno llamado «hello» con el siguiente comando:

cd hola 

Ahora que estamos en el directorio de nuestro proyecto empieza lo bueno 🙂 Creémos nuestro ambiente virtual con ela siguiente orden:

virtualenv venv --python=python3 

Te explico este comando:

  1. Llamamos a virtualenv ya que es el módulo que creará nuestro ambiente virtual
  2. Nuestro segundo parámetro es el nombre que queremos ponerle a nuestro ambiente
  3. Nuestro tercer y último parámetro es la versión de python que queremos utilizar, tú puedes poner la que quieras, yo puse python 3 ya que esto le dirá a virtualenv que use la última versión de python3 que tengo instalada

¡Ya tenemos nuestro ambiente creado! Ahora solo debemos encenderlo, para ello usamos el siguiente comando:

Si tiene un sistema basado en unix (linux, mac, etc…):

source venv/bin/activate 

Si tiene windows:

script venv/bin/activate 

CUIDADO: Ten en cuenta que para esto debes estar en directorio en el que creaste tu ambiente, también que donde pongo venv debes poner el nombre que le pusiste a tu carpeta. Este comando lo que está haciendo es corriendo un archivo llamado «activate» que está en una carpeta llamada «bin» que a su vez está dentro de la carpeta de tu ambiente virtual.

¡Ahora ya tienes tu ambiente encendido! ¿Ves lo fácil que es?

ambiente virtual encendido

algo así te debe salir si lo hiciste todo bien, el texto del lado izquierdo entre paréntesis indica que está encendido.

¿Y como lo desactivo?

Es muy fácil, solo debemos usar este comando:

deactivate 

¿Ves lo fácil que es? Espero que sí. Ahora ya sabes todo lo que necesitas acerca de esto, ya puedes crear cuantos proyectos quieras y no tendrás que preocuparte nunca por las dependencias, por lo menos no de conflictos entre ellas.

Si no entendiste algo no dudes en comentar y nosotros responderemos a tus comentarios. Espero que empieces a usar los ambientes virtuales y que estos te hagan la vida mucho más fácil!

Compartir es agradecer! :)

2 comentarios en “¿Qué es un ambiente virtual? | Virtualenv”

  1. Hola sigo las instrucciones, pro no carga, por que.. primero el archivo activate esta en la siguiente carpeta:
    Directorio: C:\Users\Heberto Ramos\Dropbox\Python\PDV\venv\Scripts

    ahora bien voy a ese directorio e intento ejecutar el script activate, pero obtengo un mensaje de error…
    ObjectNotFound: (activate:String) [], CommandNotFoundException

    asi que estoy varado en este punto…

  2. Hola deberías tener un script «.bat» así que deberías ejecutar:
    source C:\Users\Heberto Ramos\Dropbox\Python\PDV\venv\Scripts\activate.bat

    Y debería funcionar.. Sino podías navegar por los directorios hasta «Scripts» desde la consola y revisar que allí se encuentre «activate.bat».
    Aquí puedes leer más https://docs.python.org/es/3/tutorial/venv.html

    Saludos, me comentas como te fue!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.