Logo Reaper

Entornos virtuales en python

Los entornos virtuales son herramientas que permiten crear un ambiente de desarrollo aislado y autocontenido para cada uno de los proyectos. Pueden tener requisitos de software diferentes, como versiones específicas de bibliotecas o paquetes.

Permiten aislar estas dependencias para que no entren en conflicto entre proyectos. Son autosuficientes, por lo que pueden ser fácilmente transferidos a otros sistemas o compartidos con otros desarrolladores, asegurando que el proyecto funcione de la misma manera en diferentes entornos.

En Windows se pueden instalar todas las versiones del intérprete que se necesiten, tan solo descargándolas desde su página oficial.

Si bien es posible añadir mas de una versión a las variables de entorno del sistema para poder ejecutar comandos o scripts sin necesidad de utilizar las rutas de los ejecutables, esto puede redundar en un conflicto con las dependencias y la funcionalidad de las diferentes versiones del intérprete.

De aquí la importancia de utilizar entornos aislados para realizar pruebas, o descargar y utilizar librerías específicas para un proyecto en concreto sin que se afecten las instalaciones principales de python.

Para evitar añadir mas de una versión a las variables de entorno del sistema, tan solo es necesario mantener desverificada la casilla "Add python.exe to PATH" durante el proceso de instalación.

Creación de un entorno virtual

El proceso explicado a continuación requiere de conocimientos básicos sobre el uso de algún intérprete de comandos, en este caso CMD; ejecución de comandos, exploración entre directorios, etcétera.

En las nuevas versiones de python, sus archivos y directorios se alojan por defecto en la ruta:

%LocalAppData%\programs\python

Allí se encuentran los diferentes directorios según las instalaciones que se hayan realizado. Por lo que si necesitamos crear un entorno virtual de la versión 3.12, podríamos dirigirnos a la ruta mencionada anteriormente. Ingresar en la carpeta Python312, pulsar shift aplicaciones sobre el archivo python.exe, y posteriormente ejecutar la opción Copiar como ruta de acceso.

Para poder ejecutar el módulo integrado de Python que gestiona estos entornos virtuales utilizaremos el intérprete de comandos, CMD en este caso. Por lo que luego de Abrirlo, y rutearlo a la carpeta deseada, hay que ejecutar el siguiente comando:

"C:\Users\Menganito\AppData\Local\Programs\Python\Python312\python.exe" -m venv p312

En este comando estamos especificando la ruta absoluta del programa a ejecutar que copiamos previamente al portapapeles. La opción -m especifica que lo siguiente es un módulo y no un script. El nombre del módulo es venv, y por último está la ruta o nombre de la carpeta donde se van a guardar los archivos y directorios del entorno virtual.

Activación y uso de un entorno virtual creado

Para poder activar el entorno recién creado, debemos ejecutar desde el intérprete de comandos un archivo alojado en la carpeta scripts del directorio del mismo llamado activate. Para ello ejecutamos una instancia de la consola CMD, y activamos el archivo escribiendo la ruta relativa o absoluta del archivo, por ejemplo

C:\Users\Menganito\p312\Scripts\activate

O si tenemos CMD apuntando a la raíz del directorio p312, el siguiente comando con la ruta relativa

scripts\activate

Si todo salió como se espera, esta instancia de la consola debería tener como entorno de python la versión virtualizada que creamos. Al ejecutar el comando

python --version

Debería mostrarse la versión del entorno virtual, y no la configurada en las variables de entorno del sistema. Esta versión del intérprete está limpia, como si estuviese recién instalada. Por lo que hay que añadir las librerías y dependencias necesarias con el comando utilizado regularmente:

pip install NombreDeLaLibrería.

Esto va a ejecutar el gestor de paquetes pip del entorno virtualizado, guardando las librerías y dependencias dentro de las carpetas de p312, no en la carpeta original de la versión instalada en el sistema.

Para desactivar este entorno, hay que ejecutar el comando deactivate en la instancia del intérprete de comandos con el entorno virtual activo, o tan solo cerrándolo con alt + f4. Para eliminar los entornos virtuales tan solo hay que eliminar las carpetas con los archivos, en el caso del ejemplo, el directorio p312.

Abrir el intérprete o ejecutar scripts desde un entorno virtual

Para abrir el intérprete de comandos de python, tan solo es necesario escribir python y pulsar intro en CMD con el entorno previamente activado. Y para ejecutar un archivo py con este entorno, hay que escribir python y la ruta del archivo. Siempre con el entorno virtual previamente activado en la instancia de la consola CMD.

Nota:
Si activamos un entorno virtual en una instancia de CMD, al abrir una nueva ventana de CMD, esta no va a tener acceso al entorno virtual. Por lo que al ejecutar comandos python, esta va a utilizar el configurado en la variable de entorno del sistema si existe, o el de la ruta que especifiquemos como primer elemento del comando.

Ejemplo en audio