Developer Tools

Gestión de Entornos con Conda: La Guía Completa para Científicos de Datos

Domina los entornos de conda, la gestión de paquetes, los canales y los flujos de trabajo reproducibles. Desde comandos básicos hasta consejos avanzados para proyectos en Python y R.

9 min de lectura

Espacio de trabajo de ciencia de datos con código en pantalla

Conda es el gestor de paquetes y entornos que impulsa la ciencia de datos moderna. Ya sea que estés manejando múltiples versiones de Python, instalando librerías con aceleración GPU o compartiendo entornos reproducibles con tu equipo, conda lo gestiona todo — sin las pesadillas de dependencias que plagan los flujos de trabajo basados únicamente en pip.

¿Por qué conda en lugar de pip + venv?

Pip instala paquetes de Python. Conda instala cualquier cosa — Python, R, librerías en C, toolkits de CUDA y dependencias a nivel de sistema. Esto importa porque las librerías de ciencia de datos como NumPy, SciPy y PyTorch dependen de código compilado en C/Fortran que pip no siempre puede resolver correctamente.

Característica pip + venv conda
Paquetes de Python
Dependencias no Python (C, CUDA)
Gestión de versiones de Python ❌ (requiere pyenv)
Aislamiento de entornos
Resolvedor de dependencias Básico SAT solver
Binarios multiplataforma Solo Wheels Soporte completo

Primeros pasos: Miniconda vs Anaconda

Miniconda te proporciona conda + Python en ~80 MB. Solo instalas lo que necesitas. Anaconda incluye más de 250 paquetes preinstalados (~3 GB) — conveniente, pero demasiado pesado para la mayoría de los flujos de trabajo.

Para la mayoría de los desarrolladores, Miniconda es la mejor opción:

# Instalar Miniconda (Linux/macOS)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

# Verificar la instalación
conda --version

Fundamentos de la gestión de entornos

Crear entornos

Crea siempre un entorno dedicado para cada proyecto. Nunca instales paquetes en base:

# Crear con una versión específica de Python
conda create -n myproject python=3.11

# Crear con paquetes preinstalados
conda create -n ml-project python=3.11 numpy pandas scikit-learn

# Crear desde un archivo de entorno
conda env create -f environment.yml

Activar y cambiar entre entornos

conda activate myproject    # Cambiar al entorno
conda deactivate            # Volver a base
conda env list              # Ver todos los entornos

Instalar paquetes

# Desde el canal predeterminado
conda install numpy pandas matplotlib

# Desde conda-forge (paquetes de la comunidad)
conda install -c conda-forge polars duckdb

# Versión específica
conda install pytorch=2.2 -c pytorch

# Instalar paquetes de pip cuando conda no los tiene
pip install some-niche-package

Consejo profesional: Intenta siempre conda install primero. Recurre a pip install solo cuando un paquete no esté disponible en ningún canal de conda. Mezclar ambos puede causar conflictos de dependencias si no se gestiona con cuidado.

Eliminar y limpiar

# Eliminar un paquete
conda remove scipy

# Eliminar un entorno completo
conda env remove -n old-project

# Limpiar paquetes en caché (liberar espacio en disco)
conda clean --all

Canales y prioridades

Los canales son los repositorios desde donde conda descarga los paquetes. El orden importa:

# Añadir conda-forge como máxima prioridad
conda config --add channels conda-forge
conda config --set channel_priority strict

# Ver los canales actuales
conda config --show channels

Configuración recomendada para ciencia de datos:

channels:
  - conda-forge
  - defaults

Establecer channel_priority: strict hace que conda siempre prefiera conda-forge, evitando problemas de dependencias entre canales mixtos.

Entornos reproducibles con environment.yml

El archivo environment.yml es la forma de compartir entornos con tus compañeros de equipo:

name: ml-pipeline
channels:
  - conda-forge
  - pytorch
dependencies:
  - python=3.11
  - numpy=1.26
  - pandas=2.2
  - scikit-learn=1.4
  - pytorch=2.2
  - jupyter
  - pip:
    - wandb
    - some-pip-only-package

Exportar y recrear

# Exportar el entorno actual (multiplataforma)
conda env export --from-history > environment.yml

# Exportar con versiones exactas (solo para el mismo SO)
conda env export > environment-lock.yml

# Recrear en otra máquina
conda env create -f environment.yml

El flag --from-history exporta únicamente los paquetes que instalaste explícitamente, lo que hace el archivo portable entre sistemas operativos.

Consejos avanzados para usuarios expertos

Acelera conda con libmamba

El resolvedor predeterminado de conda puede ser lento. Cambia a libmamba para resoluciones entre 10 y 50 veces más rápidas:

conda install -n base conda-libmamba-solver
conda config --set solver libmamba

A partir de conda 23.10+, libmamba es el resolvedor predeterminado — pero verifica si estás usando una versión anterior.

Apilar entornos

Puedes apilar entornos para compartir dependencias base:

conda activate base-ml
conda activate --stack experiment-42

Esto te da acceso a los paquetes de ambos entornos sin duplicar instalaciones de gran tamaño.

Usar conda con Docker

FROM continuumio/miniconda3:latest

COPY environment.yml .
RUN conda env create -f environment.yml && conda clean -afy

SHELL ["conda", "run", "-n", "myenv", "/bin/bash", "-c"]
CMD ["python", "app.py"]

Usar conda en CI/CD

# Ejemplo con GitHub Actions
- uses: conda-incubator/setup-miniconda@v3
  with:
    environment-file: environment.yml
    python-version: "3.11"
    activate-environment: myproject

Problemas comunes y sus soluciones

1. "Solving environment" tarda una eternidad

Cambia al resolvedor libmamba (ver más arriba) o reduce el número de versiones de paquetes fijadas.

2. Mezclar conda y pip genera conflictos

Instala primero todos los paquetes de conda y luego los de pip. Si necesitas añadir más paquetes de conda después, recrea el entorno desde environment.yml.

3. El entorno ocupa demasiado espacio

Usa conda clean --all con regularidad. Considera usar Miniconda en lugar de Anaconda e instala solo lo que necesites.

4. Errores de "Package not found"

Busca el paquete con: conda search package-name. Prueba con conda-forge: conda install -c conda-forge package-name. Si es un paquete exclusivo de Python, usa pip como alternativa.

Referencia rápida

¿Necesitas consultar algún comando de conda rápidamente? Usa nuestra Conda Cheat Sheet — incluye más de 90 comandos organizados por categoría con copia en un clic, búsqueda y filtrado.

Conclusión

Los entornos de conda son esenciales para la ciencia de datos reproducible. Las prácticas clave son:

  1. Un entorno por proyecto — nunca contamines base
  2. Usa environment.yml — versiona tus dependencias
  3. Prefiere conda-forge — el canal comunitario más grande
  4. Exporta con --from-history — portable entre plataformas
  5. Usa el resolvedor libmamba — instalaciones dramáticamente más rápidas

Domina estos patrones y nunca volverás a escuchar "pero en mi máquina funciona".