
Compartir:
Diana es desarrolladora de Vonage. Le gusta comer ostras frescas.
Guía completa para trabajar con entornos virtuales Python
Imagina que eres un chef con un plato emblemático pero quieres experimentar con distintos ingredientes o técnicas culinarias. En lugar de modificar directamente su receta original, crea copias idénticas del plato. Cada copia te permite probar nuevas variaciones sin alterar la receta original. De este modo, puede explorar distintos sabores y métodos manteniendo intacta la integridad de su plato principal. Los entornos virtuales (abreviados como venv para este blog) son como tener varios del mismo plato como chef.
En este blog, aprenderás sobre los entornos virtuales de Python y cómo trabajar con ellos.
¿Qué es un entorno virtual Python?
Un entorno virtual Python es un entorno Python autónomo que contiene una versión específica del intérprete Python y sus dependencias asociadas.
Estos entornos ofrecen copias aisladas de tu entorno Python, permitiéndote instalar y probar diferentes paquetes sin afectar a tu entorno Python global. Cuando activas un entorno virtual, el intérprete de Python y los paquetes instalados en ese entorno tienen prioridad sobre la instalación global de Python y otros entornos. De esta forma, tu proyecto utiliza automáticamente las versiones correctas de las dependencias.
¿Por qué necesita entornos virtuales?
Instalar paquetes utilizando pip dentro de un entorno virtual es la mejor práctica para mantener un entorno global limpio y evitar cambios accidentales en los paquetes de todo el sistema. Además, hay algunos escenarios en los que el uso de entornos virtuales puede ser beneficioso:
Cuando varios proyectos utilizan diferentes versiones de paquetes, los entornos virtuales en el desarrollo de Python ayudan a gestionar las dependencias por separado, evitando conflictos entre los requisitos del proyecto.
También son útiles para crear entornos de prueba aislados, lo que le permite configurar dependencias específicas para probar nuevos paquetes sin afectar a la configuración principal de Python.
Cómo utilizar herramientas para crear y activar un entorno virtual
Existen varias herramientas diferentes que puede utilizar para crear entornos virtuales, como por ejemplo Conda, Pipenv, Poesíay muchos más. Dos populares son virtualvenv y venv.
Uso de virtualenv
virtualenv es una herramienta de terceros especialmente útil para gestionar entornos con versiones de Python tanto nuevas como antiguas. La principal diferencia con venv es que virtualenv es más flexible y personalizable, por lo que puedes utilizarla para crear entornos virtuales con versiones específicas de Python, directorios de paquetes personalizados y mucho más. Aquí tienes algunos ejemplos de cómo usar virtualenv.
Instalación:
En primer lugar, asegúrese de que tiene Python instalado en su sistema.
Instala virtualenv usando pip:
pip install virtualenvCrear un entorno:
Navegue hasta el directorio de su proyecto en el terminal.
Crea un nuevo entorno virtual utilizando virtualenv:
virtualenv myenvSustituya myenv por el nombre del entorno que desee.
Activación:
En Windows:
myenv\Scripts\activateEn Unix o MacOS:
source myenv/bin/activateLa línea de comandos debería mostrar ahora el entorno virtual activo.
Instalar paquetes en el entorno virtual
pip install package_name
Desactivación:
Basta con utilizar el comando
deactivatecomando:
deactivateEsto le devolverá al entorno global de Python.
Siguiendo estos pasos, puedes utilizar eficazmente virtualenv para gestionar tus proyectos Python en entornos aislados.
Utilizar venv
venv es un módulo que viene incorporado con Python 3 y se utiliza mejor para crear entornos virtuales ligeros. Crea entornos aislados que tienen su propio intérprete de Python, directorios de paquetes y variables de entorno. Siga los siguientes comandos para utilizar venv:
Crear un entorno virtual
Navegue hasta el directorio de su proyecto en el terminal.
Crear un nuevo entorno virtual utilizando venv:
python -m venv myenvSustituya myenv por el nombre del entorno que desee.
Activación
En Windows:
myenv\Scripts\activate.batEn Unix o MacOS:
bash source myenv/bin/activateUna vez activado, puedes trabajar dentro de los entornos virtuales activos como lo harías con un entorno Python normal. Puede instalar paquetes utilizandopipejecutar scripts Python y gestionar dependencias.Instalar paquetes en el entorno virtual
pip install package_name
Desactivación:
Basta con utilizar el comando
deactivatecomando:
deactivate
Esto le devolverá al entorno global de Python.
Cómo crear entornos virtuales para dos proyectos diferentes
Imagina que estás construyendo dos proyectos usando Vonage, cada uno de los cuales requiere una versión diferente de Flask. Si sólo tienes Flask instalado en el Python global de tu sistema operativo, no puedes utilizar dos versiones del mismo paquete. Para resolver este problema, vamos a crear entornos virtuales para cada proyecto siguiendo estos pasos:
1. Cree el entorno virtual para el primer proyecto:
En Unix/macOS y Windows:
python3 -m venv project1_venv
2. Active el entorno virtual del primer proyecto:
En Unix/macOS:
source project1_venv/bin/activateEn Windows:
project1_venv\Scripts\activate3. (Opcional) Establecer variables de entorno (por ejemplo, para Flask y Vonage):
En Unix/macOS:
export FLASK_APP=app.py
export VONAGE_API_KEY=your_api_key
export VONAGE_API_SECRET=your_api_secret
En Windows:
set FLASK_APP=app.py
set VONAGE_API_KEY=your_api_key
set VONAGE_API_SECRET=your_api_secret
4. Instala Flask (por ejemplo, la versión 1.1.2) y Vonage para el primer proyecto:
En Unix/macOS y Windows:
pip install Flask==1.1. vonage5. Lista de paquetes instalados
pip list6. Cree el entorno virtual para el segundo proyecto:
En Unix/macOS y Windows:
python -m venv project2_venv
7. Activar el entorno virtual del segundo proyecto
En Unix/macOS:
source project2_venv/bin/activate
En Windows:
project2_venv\Scripts\activate8. (Opcional) Establezca las variables de entorno (por ejemplo, para Flask y Vonage):
En Unix/macOS:
export FLASK_APP=app.py
export VONAGE_API_KEY=your_api_key
export VONAGE_API_SECRET=your_api_secret
En Windows:
set FLASK_APP=app.py
set VONAGE_API_KEY=your_api_key
set VONAGE_API_SECRET=your_api_secret9. Instale una versión diferente de Flask (por ejemplo, la versión 2.0.1) y Vonage para el segundo proyecto.
En Unix/macOS y Windows:
pip install Flask==2.0.1 vonage
10. Lista de paquetes instalados
En Unix/macOS:
pip list
En Windows:
pip list
11. Verify Flask and Vonage versions:
En Unix/macOS y Windows:
flask --version
vonage --version
Cómo evitar el problema de "pero si funciona en mi máquina".
Digamos que has creado la aplicación más increíble utilizando Vonage, y ahora otras personas quieren recrearla en sus propias máquinas. Después de configurar Vonage, Flask y otras dependencias en tu entorno virtual, congela las dependencias en un archivo requirements.txt archivo:
pip freeze > requirements.txt
A continuación, comparta su proyecto e incluya el archivo requirements.txt en el repositorio. Las otras personas pueden entonces recrear tu entorno clonando tu repo y creando un entorno virtual en su propio directorio de proyecto ejecutando:
python -m venv venv
source venv/bin/activate # On macOS/Linux
venv\Scripts\activate # On Windows
Por último, instalan las dependencias del archivo requirements.txt ejecutando:
pip install -r requirements.txt
Cómo desactivar el entorno virtual
Cuando hayas terminado de trabajar en un entorno virtual, puedes desactivarlo. Escriba deactivate en tu terminal o símbolo del sistema y pulsa Intro. Este comando desactivará el entorno virtual actualmente activo, revirtiendo tu sesión de shell para usar el entorno global de Python.
deactivate
En resumen
Los entornos virtuales de Python son herramientas inestimables para los desarrolladores de Python, ya que ofrecen una forma de crear entornos aislados para diferentes proyectos con dependencias y configuraciones específicas. Funcionan como cocinas separadas para los chefs, permitiendo la experimentación y la personalización sin afectar a la receta principal. Siguiendo las mejores prácticas mediante el uso de un módulo de Python como venv o virtualenvpuedes gestionar fácilmente las dependencias, evitar conflictos y mantener limpias las configuraciones de los proyectos. Tanto si estás trabajando en varios proyectos con diferentes requisitos como si estás probando nuevos paquetes y configuraciones, los entornos virtuales proporcionan la flexibilidad y consistencia necesarias para un flujo de trabajo efectivo en el desarrollo de Python.
Recursos adicionales
Únete a la fiesta
Si te gustó este blog (o lo odiaste), ¡házmelo saber! Sigue al equipo de Vonage Developer Experience en Xantes conocido como Twitter, o únete a la canal Slack de la comunidad de Vonage de la comunidad de Vonage. Si terminas usando entornos virtuales en tu aplicación Python, por favor comparte tu experiencia y etiquétame - Me encantaría saber lo que has hecho.