Hay una estrategia que nos fue sugerida en Platzi para la gestión de ambientes virtuales para un Proyecto individual. Ésta se basa en trabajar con tres ambientes separados por áreas funcionales dentro de un proyecto de ciencia de datos! Es una técnica que algunos equipos utilizan para mantener un control más granular sobre las dependencias de cada etapa del flujo de trabajo. 🚀

Te explico cómo funciona y cuáles son las ventajas y desventajas de esta metodología 👇:


📚 Estrategia: Dividir un Proyecto en 3 Ambientes Virtuales

Esta estrategia propone crear tres ambientes Conda independientes dentro de un mismo proyecto, cada uno enfocado en una parte clave del proceso de ciencia de datos:

Ambiente

Propósito Principal

Ejemplos de Librerías

modelos

Entrenamiento y evaluación de modelos

scikit-learn, xgboost

externos

Conexión con bases de datos y APIs

psycopg2, requests

comunicación

Visualización y reportes

matplotlib, dash

Cada ambiente contiene únicamente las dependencias necesarias para esa parte específica del proyecto, lo que evita instalar paquetes innecesarios y reduce el riesgo de conflictos.


🎯 ¿Por qué dividir en 3 ambientes?

Esta estrategia surge para abordar un problema común:

👉 Los proyectos de ciencia de datos suelen tener dependencias muy variadas, desde librerías para el preprocesamiento de datos, hasta herramientas de visualización y comunicación. Tener todo en un solo ambiente puede hacer que este crezca demasiado y que sea más difícil de mantener.

Dividir el proyecto en 3 áreas funcionales permite:

✅ Reducir el tamaño de cada ambiente.
✅ Evitar conflictos entre paquetes (por ejemplo, evitar que un paquete de visualización como Plotly entre en conflicto con librerías de machine learning).
✅ Permitir la actualización independiente de cada ambiente.


🛠️ ¿Cómo implementar esta estrategia?

Supongamos que estás trabajando en un proyecto llamado prediccion_ventas. Aquí te dejo los pasos para aplicar esta estrategia:

🔧 1. Crea la estructura del proyecto

bash

Copiar código

/Mis_Proyectos/prediccion_ventas

  ├── modelos/

  ├── externos/

  ├── comunicacion/

  ├── src/

  └── data/


Dentro de cada carpeta (modelos, externos, comunicacion), creas su propio ambiente Conda.


📂 2. Crea los 3 ambientes con Conda

📦 1. Ambiente modelos

bash

Copiar código

cd /Mis_Proyectos/prediccion_ventas/modelos

conda create --prefix ./env python=3.11 scikit-learn xgboost pandas


Este ambiente incluye todas las librerías relacionadas con el entrenamiento de modelos.


🌐 2. Ambiente externos

bash

Copiar código

cd /Mis_Proyectos/prediccion_ventas/externos

conda create --prefix ./env python=3.11 psycopg2 requests sqlalchemy


Este ambiente incluye librerías para conectarse a bases de datos y consumir APIs.


📊 3. Ambiente comunicacion

bash

Copiar código

cd /Mis_Proyectos/prediccion_ventas/comunicacion

conda create --prefix ./env python=3.11 matplotlib seaborn dash


Este ambiente incluye librerías para crear gráficos, dashboards y reportes.


🔄 3. Activa los ambientes según la necesidad

Cuando estés trabajando en una parte del proyecto, solo activas el ambiente correspondiente:

Para entrenar modelos:
bash
Copiar código
conda activate /Mis_Proyectos/prediccion_ventas/modelos/env


Para conectarte a una base de datos o API:
bash
Copiar código
conda activate /Mis_Proyectos/prediccion_ventas/externos/env


Para crear reportes o dashboards:
bash
Copiar código
conda activate /Mis_Proyectos/prediccion_ventas/comunicacion/env



💡 Ventajas de esta estrategia


⚠️ Desventajas de esta estrategia


🏷️ Cuándo usar esta estrategia

Úsala si tu proyecto es grande o tiene múltiples etapas complejas.
Ideal para proyectos colaborativos donde cada miembro del equipo trabaja en una parte específica.
Evítala para proyectos pequeños o simples. En esos casos, un solo ambiente es más que suficiente.

Yo no sé tu, pero por el momento yo me quedaré trabajando con un solo ambiente virtual por proyecto.

Fuente: ChatGPT con un buen Prompt de mi parte.