Un entorno virtual es un entorno Python aislado que nos permite tener una copia independiente de Python y sus paquetes para cada proyecto.
Esto significa que podemos tener diferentes versiones de Python y paquetes instalados en cada entorno virtual, sin interferir con otros proyectos o el sistema global de Python en nuestra máquina.
El objetivo es evitar conflictos entre librerías instaladas*, o incluso por cambios de versión de Python. Por este motivo es muy habitual también a la hora de colaborar entre varias personas, o en proyectos Open Source.
¿Qué es un entorno virtual?
Un Entorno virtual es simplemente una carpeta con una estructura determinada que Python crea por nosotros.
Entorno Virtual
├── Include
├── Libs
│ └── site-packages
└── Scripts
En resumen, esta carpeta contiene,
- Un intérprete de Python determinado (o un enlace simbólico a él)
- Ficheros de configuración
- Una carpeta con las librerías que añadimos al entorno
- Scripts (que por ejemplo activan o desactivan el entorno)
Cuando lanzamos Python, y previamente hemos activado en la misma sesión de terminal un entorno, Python sabe que “no tiene que salirse de su entorno”.
Así que, a efectos prácticos, es como si tuviéramos una “pequeña instalación independiente de Python” (es decir, un entorno virtual).
Creación de un entorno virtual
Para crear un nuevo entorno virtual, podemos utilizar la herramienta venv
que viene incluida con Python 3.
Primero, creamos un nuevo directorio para nuestro proyecto y nos movemos a él:
mkdir mi_proyecto
cd mi_proyecto
Luego, utilizamos venv
para crear el entorno virtual. Especificamos el nombre de la carpeta que contendrá el entorno virtual (por ejemplo, venv
):
python -m venv mi_env
python3 -m venv mi_env
Esto creará una carpeta mi_env
en nuestro directorio de proyecto que contendrá el entorno virtual.
Activación del entorno virtual
Una vez creado el entorno virtual, necesitamos activarlo para comenzar a usarlo. Para ello tenemos que llamar a un pequeño Script llamado activate
que está guardado en la carpeta Scripts
del entorno.
mi_env\Scripts\activate
source mi_env/bin/activate
Al activar el entorno virtual, verás que el prompt de tu terminal cambia para indicar que estás en el entorno virtual.
(mi_env) C:\ruta_a_mi_proyecto\mi_env >
Desactivación del entorno virtual
Cuando hayamos terminado de trabajar en nuestro proyecto y queramos salir del entorno virtual, simplemente ejecutamos:
deactivate
Esto nos devolverá al entorno de Python global de nuestro sistema.
Generalmente, lo que haremos es cerrar la ventana de terminal donde hayamos activado el entorno virtual, y listo.
Instalación de paquetes en el entorno virtual
Una vez activado el entorno virtual, podemos utilizar pip
para instalar paquetes específicos dentro de este entorno sin afectar al sistema global de Python.
pip install requests
Esto instalará el paquete requests
dentro del entorno virtual venv
.
Uso de entornos virtuales con visual studio code
Si estás usamdo Visual Studio Code como tu entorno de desarrollo, también puedes seleccionar un entorno virtual para tu proyecto (de hecho, es facilisimo).
Por un lado, podemos crear directamente un entorno virtual. Para ello, en la paleta de comandos (Ctrl + Shift + P) escribimos Python: Create Enviroment, y seguimos las instrucciones que nos dará.
Si ya tenemos un entorno virtual y queremos activarlo, en la paleta de comandos escribimos Python: Select Interpreter.
Nos aparecerá un desplegable con los distintos intérpretes que VSCode ha detectado, incluido el entorno virtual que tengamos abierto.
En la barra inferior de VSCode podemos verificar que intérprete tenemos activado.
Además, si abrimos una consola de terminal (Ctrl + Shift + ñ) veremos
Cuando queramos dejar de usar el entorno virtual, volvemos a usar Python: Select Interpreter y seleccionamos otro entorno, o la instalación global.