Introducción
En este laboratorio, aprenderá las prácticas esenciales para gestionar entornos virtuales de Python. Cubriremos cómo crear un entorno aislado para un proyecto, instalar dependencias específicas, eliminar paquetes innecesarios y, en última instancia, eliminar el entorno para liberar espacio en disco. Estas habilidades son fundamentales para mantener un flujo de trabajo de desarrollo limpio y organizado.
Creación y Activación de un Entorno Virtual
Primero, vamos a crear un entorno aislado para un proyecto de ejemplo. El uso de un entorno virtual asegura que los paquetes de este proyecto no entren en conflicto con los paquetes de otros proyectos o con la instalación de Python a nivel del sistema. Utilizaremos el módulo venv, que es la herramienta estándar incluida con Python.
El script de configuración ya ha creado un directorio de proyecto para nosotros en /home/labex/project/my_web_app. Naveguemos hasta él.
cd my_web_app
Ahora, cree un entorno virtual llamado venv dentro de este directorio. Es una convención común nombrar el directorio del entorno venv.
python3 -m venv venv
Este comando crea un directorio venv que contiene una nueva instalación de Python. Puede ver su contenido ejecutando:
ls -F venv/
Debería ver subdirectorios como bin/, include/, lib/, y un archivo de configuración.
bin/ include/ lib/ lib64@ pyvenv.cfg
Para empezar a usar este entorno, necesita "activarlo".
source venv/bin/activate
Después de ejecutar este comando, notará que el prompt de su shell cambia para incluir (venv), indicando que el entorno virtual está activo. Cualquier comando de Python o pip que ejecute ahora utilizará los ejecutables y paquetes dentro de este entorno.
Puede verificar esto comprobando la ruta del ejecutable de Python:
which python
La salida apuntará al binario de Python dentro de su directorio venv.
/home/labex/project/my_web_app/venv/bin/python
Instalación y Aislamiento de Dependencias
Con el entorno virtual activo, ahora podemos instalar las dependencias del proyecto. Se ha creado un archivo requirements.txt para usted, que enumera los paquetes necesarios.
Instale los paquetes usando pip:
pip install -r requirements.txt
Pip descargará e instalará flask y requests y sus dependencias en el venv.
Para ver los paquetes instalados específicamente en este entorno, use pip list:
pip list
Verá flask, requests y otros paquetes que se acaban de instalar.
Package Version
------------------ --------
certifi ...
charset-normalizer ...
click ...
Flask 2.2.2
idna ...
itsdangerous ...
Jinja2 ...
MarkupSafe ...
pip ...
requests 2.28.1
setuptools ...
urllib3 ...
Werkzeug ...
Ahora, veamos el poder del aislamiento. Desactive el entorno para volver al contexto global de su sistema.
deactivate
El prefijo (venv) en su prompt desaparecerá. Ahora, ejecute pip list de nuevo.
pip list
Notará que flask y requests ya no están en la lista, porque solo se instalaron dentro del entorno virtual, manteniendo limpio su entorno global de Python.
Eliminación de Paquetes No Utilizados
A medida que un proyecto evoluciona, algunas dependencias pueden volverse obsoletas. Es una buena práctica eliminarlas para mantener el entorno optimizado y actualizar su archivo requirements.txt.
Primero, reactive el entorno virtual para gestionar sus paquetes.
source venv/bin/activate
Supongamos que nuestro proyecto ya no necesita el paquete requests. Podemos desinstalarlo usando pip. La opción -y confirma automáticamente la desinstalación.
pip uninstall -y requests
Verifique que el paquete ha sido eliminado listando nuevamente los paquetes instalados.
pip list
Verá que requests y sus dependencias (como urllib3, certifi, etc., si ya no son necesarias para ningún otro paquete) han desaparecido.
Después de eliminar un paquete, debe actualizar su archivo requirements.txt para reflejar el estado actual del entorno. Puede hacerlo "congelando" la lista de paquetes actual en el archivo.
pip freeze > requirements.txt
Puede ver el archivo actualizado para confirmar el cambio:
cat requirements.txt
El archivo ahora solo listará flask y sus dependencias.
click==...
Flask==2.2.2
itsdangerous==...
Jinja2==...
MarkupSafe==...
Werkzeug==...
Finalmente, desactivaremos el entorno por ahora.
deactivate
Eliminación del Entorno Virtual Completo
Cuando un proyecto se completa, o si desea comenzar de nuevo con un entorno fresco, el método de limpieza más sencillo es eliminar todo el directorio del entorno virtual.
Primero, asegúrese de no estar dentro del directorio my_web_app, ya que generalmente no es una buena idea eliminar un directorio en el que se encuentra actualmente. Vamos a movernos al directorio padre.
cd /home/labex/project
Antes de eliminarlo, puede verificar cuánto espacio en disco está utilizando el entorno virtual con el comando du (disk usage).
du -sh my_web_app/venv
La salida mostrará el tamaño total del directorio.
30M my_web_app/venv
Ahora, elimine todo el directorio venv. El comando rm -rf elimina recursiva y forzosamente el directorio y todo su contenido. Tenga cuidado con este comando.
rm -rf my_web_app/venv
Verifique que el directorio ha desaparecido listando el contenido de my_web_app.
ls my_web_app
Verá que solo queda el archivo requirements.txt. El entorno virtual ha sido completamente limpiado.
requirements.txt
Resumen
En este laboratorio, ha aprendido el ciclo de vida completo de la gestión de un entorno virtual de Python. Ha practicado la creación de un entorno con venv, su activación, la instalación de dependencias desde un archivo requirements.txt, la observación del aislamiento de paquetes, la eliminación de paquetes innecesarios y, finalmente, la limpieza eliminando todo el directorio del entorno. Estas son habilidades cruciales para cualquier desarrollador de Python para mantener configuraciones de proyecto limpias, reproducibles y libres de conflictos.



