Introducción
Los proyectos de Python a menudo requieren diferentes versiones de paquetes. Un entorno virtual proporciona a un proyecto su propio intérprete de Python y su propio directorio de paquetes, de modo que instalar un paquete para un proyecto no altera el entorno global de Python ni afecta a otros proyectos.
En este laboratorio, creará un entorno virtual con el módulo integrado venv, lo activará, instalará un paquete dentro de él y creará un segundo entorno para confirmar que los entornos están aislados entre sí. Todo el trabajo se realizará en /home/labex/project.
Crear un entorno virtual para el proyecto
En este paso, creará un entorno virtual para un proyecto de Python. Un entorno virtual es simplemente un directorio que contiene un ejecutable de Python, scripts de activación y su propia área de instalación de paquetes.
Primero, diríjase al espacio de trabajo del proyecto. Mantener los archivos del laboratorio en /home/labex/project facilita la localización del entorno y mantiene su trabajo separado de los archivos del sistema.
cd /home/labex/project
Antes de crear el entorno, verifique la versión de Python disponible en el sistema. El comando python3 --version imprime la versión del intérprete que utilizará venv.
python3 --version
Debería ver una salida de Python 3 similar a esta:
Python 3...
Ahora, cree un entorno virtual llamado project-env. La opción -m venv le indica a Python que ejecute su módulo integrado venv como una herramienta de línea de comandos, y project-env es el directorio que contendrá el entorno.
python3 -m venv project-env
Liste el contenido del nuevo directorio para ver la estructura creada por venv.
ls project-env
Las entradas exactas pueden variar ligeramente, pero debería ver archivos y carpetas como los siguientes:
bin
include
lib
pyvenv.cfg
El archivo pyvenv.cfg registra cómo se creó el entorno. Inspecciónelo ahora.
cat project-env/pyvenv.cfg
Busque la línea include-system-site-packages = false. Esa configuración significa que este entorno no comparte automáticamente los paquetes de Python instalados globalmente.
Activar el entorno e instalar un paquete
En este paso, activará project-env e instalará un paquete dentro de él. La activación cambia las variables de entorno del shell para que comandos como python y pip apunten primero al entorno virtual.
Asegúrese de seguir en el espacio de trabajo del proyecto.
cd /home/labex/project
Utilice source para ejecutar el script de activación en su shell actual. Esto es importante porque un script hijo no puede cambiar el shell padre, pero source puede actualizar el shell en el que está escribiendo.
source project-env/bin/activate
Después de la activación, el prompt del shell suele comenzar con (project-env). Confirme que python ahora apunta al interior del entorno virtual imprimiendo dos rutas desde Python. sys.prefix es el entorno activo, mientras que sys.base_prefix es la instalación base de Python.
python -c "import sys; print(sys.prefix); print(sys.base_prefix)"
La primera línea debería ser su entorno virtual y la segunda línea debería ser la ubicación del Python del sistema:
/home/labex/project/project-env
/usr...
Instale un paquete pequeño llamado colorama en el entorno activo. Ejecutar python -m pip utiliza el pip que pertenece al intérprete de Python actualmente activo.
python -m pip install colorama==0.4.6
Cuando finalice la instalación, pip debería informar que colorama se instaló correctamente.
Verifique el paquete desde Python importándolo e imprimiendo su versión.
python -c "import colorama; print(colorama.__version__)"
La salida debería ser:
0.4.6
Puede salir del entorno virtual con deactivate. Esto devuelve el comportamiento de búsqueda de python y pip al entorno de shell normal.
deactivate
Crear un segundo entorno aislado
En este paso, creará otro entorno virtual y lo comparará con project-env. Los entornos separados pueden utilizar el mismo intérprete base de Python mientras mantienen sus paquetes instalados de forma independiente.
Regrese al espacio de trabajo del proyecto.
cd /home/labex/project
Localice el ejecutable python3 del sistema. El comando command -v imprime la ruta que el shell ejecutará para un nombre de comando determinado.
command -v python3
La ruta suele ser:
/usr/bin/python3
Cree un segundo entorno llamado tools-env. La opción --prompt tools-env establece el texto del prompt de activación, lo cual es útil cuando trabaja con varios entornos.
python3 -m venv --prompt tools-env tools-env
Ahora compare los prefijos de ambos entornos. Cada comando ejecuta el ejecutable de Python dentro de un entorno virtual diferente e imprime su prefijo activo.
project-env/bin/python -c "import sys; print(sys.prefix)"
tools-env/bin/python -c "import sys; print(sys.prefix)"
Debería ver dos directorios diferentes:
/home/labex/project/project-env
/home/labex/project/tools-env
Finalmente, verifique si colorama está disponible en tools-env. Usted instaló colorama solo en project-env, por lo que el segundo entorno no debería encontrarlo.
tools-env/bin/python -c "import importlib.util; print(importlib.util.find_spec('colorama'))"
La salida esperada es:
None
Esto confirma que los paquetes instalados en un entorno virtual no aparecen automáticamente en otro.
Resumen
Ha creado un entorno virtual de Python, inspeccionado su configuración, lo ha activado, ha instalado un paquete en él y ha creado un segundo entorno para confirmar el aislamiento de los paquetes. También ha practicado el uso de python3 -m venv, source, python -m pip y las rutas directas de Python del entorno para comprender qué intérprete se está ejecutando.



