Gestión de entornos virtuales
Comprender los entornos virtuales
Los entornos virtuales son espacios de tiempo de ejecución (runtime) de Python aislados que permiten a los desarrolladores crear ecosistemas de dependencias separados para diferentes proyectos, evitando conflictos y garantizando la reproducibilidad.
Flujo de trabajo de los entornos virtuales
graph TD
A[Create Virtual Environment] --> B[Activate Environment]
B --> C[Install Project Dependencies]
C --> D[Develop Project]
D --> E[Deactivate Environment]
Estrategias clave de gestión
1. Creación de entornos virtuales
Usando venv
## Create virtual environment
python3 -m venv project_env
## Activate environment
source project_env/bin/activate
## Deactivate environment
deactivate
Usando virtualenv
## Install virtualenv
pip3 install virtualenv
## Create environment
virtualenv -p python3 project_env
## Activate environment
source project_env/bin/activate
Gestión de dependencias
Mejores prácticas para el archivo de requisitos
Acción |
Comando |
Descripción |
Generar requisitos |
pip freeze > requirements.txt |
Exportar las dependencias actuales |
Instalar dependencias |
pip install -r requirements.txt |
Instalar a partir del archivo de requisitos |
Actualizar dependencias |
pip install --upgrade -r requirements.txt |
Actualizar paquetes |
Configuración avanzada de entornos
Múltiples versiones de Python
## Install pyenv
curl https://pyenv.run | bash
## Install multiple Python versions
pyenv install 3.8.10
pyenv install 3.9.7
pyenv install 3.10.5
## Set global/local Python versions
pyenv global 3.9.7
pyenv local 3.10.5
Técnicas de aislamiento de entornos
1. Directorios de proyecto separados
/home/user/projects/
├── project1_env/
│ └── ...
├── project2_env/
│ └── ...
└── project3_env/
└── ...
2. Usando virtualenvwrapper
## Install virtualenvwrapper
pip3 install virtualenvwrapper
## Configure shell
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
source /usr/local/bin/virtualenvwrapper.sh
## Create and manage environments
mkvirtualenv myproject
workon myproject
deactivate
rmvirtualenv myproject
Mejores prácticas
- Utilice siempre entornos virtuales.
- Mantenga los entornos lo más mínimos posible.
- Utilice requirements.txt.
- Evite las instalaciones de paquetes a nivel de sistema.
- Actualice regularmente las dependencias.
Consideraciones de seguridad
- Limite el acceso al entorno.
- Utilice entornos virtuales en producción.
- Actualice regularmente los paquetes.
- Utilice herramientas de análisis de seguridad.
Recomendación de LabEx
LabEx sugiere dominar las técnicas de entornos virtuales para garantizar flujos de trabajo de desarrollo de Python limpios, reproducibles y seguros.