Un entorno virtual es una herramienta que ayuda a mantener separadas las dependencias requeridas por diferentes proyectos mediante la creación de entornos virtuales Python aislados para ellos. Esta es una de las herramientas más importantes que utilizan la mayoría de los desarrolladores de Python.
Necesidad de entorno virtual
Imagine un escenario en el que una aplicación web está alojada en un proveedor de servicios de alojamiento en la nube con un entorno de desarrollo de Python. La configuración de la aplicación web viene con una opción para instalar la versión más reciente del marco web Flask. Supongamos que la aplicación web se crea en el sistema local con una versión anterior del marco y, tan pronto como se cargue en el sitio, habrá un conflicto de versiones, ya que algunos de los módulos utilizados están obsoletos en las últimas versiones de Flask.
uso de entorno virtual
El escenario anterior se puede resolver utilizando un entorno virtual. Los entornos de desarrollo de Python se pueden separar haciendo uso de algún entorno virtual. Un entorno virtual, aquí, es una instalación de Python aislada que permite administrar dependencias y trabajar en proyectos de Python separados sin afectar a otros proyectos. Cuando se crea un entorno virtual, crea una carpeta separada del Python global u otros entornos virtuales y copia Python en él junto con una carpeta de paquetes del sitio, entre otros. Para versiones anteriores de Python, las máquinas virtuales requieren la instalación de una herramienta de terceros llamada virtualenv. Se ha integrado en versiones más nuevas de Python3 bajo el módulo venv. Para saber más sobre virtualenv haga clic aquí .
Implementando venv
Primero, verifique si el pip tiene la misma versión del intérprete que la del sistema y dónde reside actualmente el entorno Python: Para verificar dónde reside actualmente Python, escriba el siguiente comando en la terminal.
where python where pip
Producción:
C:\Users\GeeksforGeeks\AppData\Local\Programs\Python\Python37\python.exe C:\Users\GeeksforGeeks\AppData\Local\Programs\Python\Python37\Scripts\pip.exe
Para crear un virtualenv use el siguiente comando:
python -m venv ./venv
Después de ejecutar este comando, se creará un directorio llamado venv. Este es el directorio que contiene todos los ejecutables necesarios para usar los paquetes que necesitaría un proyecto de Python. Aquí es donde se instalarán los paquetes de Python. Para enumerar los archivos en la carpeta, escriba el siguiente comando en la terminal:
dir ./venv
Salida: el comando pip todavía apunta al entorno global. Necesitamos activar explícitamente el entorno virtual creado para configurar la sesión de shell actual para usar comandos pip de la carpeta virtualenv y no terminar instalando paquetes en el entorno global: Para activar venv primero cambie el directorio a venv\Scripts.
cd venv\Scripts
Después de cambiar el directorio, escriba el siguiente comando.
$ Source venv_name\Scripts> activate
Una vez que se activa el entorno virtual, el nombre de su entorno virtual aparecerá en el lado izquierdo de la terminal. Esto le permitirá saber que el entorno virtual está actualmente activo. En la imagen a continuación, el entorno virtual denominado venv está activo.
(Nota: intente «./activar» en lugar de «activar» si usa el terminal PowerShell) El intérprete de Python también ejecutaría la versión desde el entorno virtual y no desde el global. Podemos verificar dónde reside actualmente el entorno de Python con el siguiente comando:
where python
Producción:
E:\distribution\venv\Scripts\python.exe C:\Users\GeeksforGeeks\AppData\Local\Programs\Python\Python37\python.exe
El entorno virtual es un entorno Python casi limpio. Ejecute pip list para ver una lista con los paquetes instalados: Salida: ahora puede instalar dependencias relacionadas con el proyecto en este entorno virtual. Por ejemplo, si está utilizando Django 1.9 para un proyecto, puede instalarlo como instala otros paquetes.
(venv_name)$ pip install Django==1.9
Una vez que haya terminado con el trabajo, puede desactivar el entorno virtual con el siguiente comando:
(venv_name)$ deactivate
Ahora volverá a la instalación de Python predeterminada del sistema.