Filosofía de Entornos Virtuales
¿Por Qué Usar Entornos Separados?
Problema: Sin entornos, todos los paquetes comparten el mismo espacio.
Consecuencias:
- Conflictos de versiones (pandas 1.5 vs 2.0)
- Dependencias rotas al actualizar
- Imposible reproducir análisis antiguos
- Proyectos diferentes interfieren entre sí
Solución: Un entorno aislado por proyecto o tipo de trabajo.
Principios Fundamentales
NUNCA instalar paquetes en base
Un entorno por propósito
- Blog → entorno
econblog - Scripts → entorno
scripts-env - Análisis temporal → entorno desechable
- Blog → entorno
Documentar dependencias
- Siempre crear
environment.yml - Mantener actualizado el archivo
- Versionar en Git
- Siempre crear
Entornos reproducibles
- Especificar versiones exactas cuando sea crítico
- Usar canales consistentes (conda-forge)
- Exportar entornos regularmente
Estrategia de Entornos para Tus Proyectos
Mapa de Entornos Recomendado
~/miniconda3/
├── envs/
│ ├── econblog/ # Blogs académicos (epsilon-y-beta, axiomata, etc.)
│ ├── scripts-env/ # Scripts de automatización
│ ├── datascience/ # Análisis avanzado temporal
│ └── teaching/ # Material educativo (notebooks para estudiantes)
Matriz de Decisión
| Proyecto | Entorno | Razón |
|---|---|---|
| epsilon-y-beta, axiomata, methodica | econblog |
Comparten dependencias: Quarto, pandas, statsmodels |
| Scripts Quarto, Calibre, Zotero | scripts-env |
Scripts de automatización compartidos |
| Análisis econométrico complejo | datascience |
Paquetes pesados (tensorflow, pytorch) |
| Notebooks para clases | teaching |
Versiones estables para estudiantes |
Entorno 1: econblog (Blogs Académicos)
Propósito
Blogs que usa este entorno:
- epsilon-y-beta (Econometría)
- axiomata (Matemáticas para economistas)
- methodica (Metodología de investigación)
- aequilibria (Macroeconomía)
- optimums (Microeconomía)
- pecunia-fluxus (Finanzas)
- actus-mercator (Gestión empresarial)
- res-publica (Gestión pública)
- dialectica-y-mercado (Filosofía)
- numerus-scriptum (Programación)
Paso 1: Crear el Entorno
Tiempo estimado: 5-10 minutos (con mamba).
Paso 2: Activar y Agregar Paquetes Adicionales
Paso 3: Verificar Instalación
Paso 4: Exportar Configuración
environment.yml para econblog
Crear archivo: ~/achalmaedison/publicaciones/epsilon-y-beta/environment.yml
# ========================================================================
# ENTORNO: econblog
# Propósito: Blogs académicos de economía, econometría y ciencia de datos
# Autor: Edison Achalma (achalmaedison)
# Institución: UNSCH
# Fecha: Enero 2026
# ========================================================================
name: econblog
channels:
- conda-forge
- defaults
dependencies:
# ----------------------------------------------------------------------
# Python
# ----------------------------------------------------------------------
- python=3.12
# ----------------------------------------------------------------------
# Jupyter y Notebooks
# ----------------------------------------------------------------------
- jupyterlab>=4.0
- jupyterlab-lsp
- ipywidgets
- notebook
- nbconvert
- myst-parser
# ----------------------------------------------------------------------
# Manipulación de Datos
# ----------------------------------------------------------------------
- pandas>=2.0
- numpy>=1.24
- pyarrow
- openpyxl
- xlrd
# ----------------------------------------------------------------------
# Visualización
# ----------------------------------------------------------------------
- matplotlib>=3.7
- seaborn>=0.12
- plotly>=5.14
# ----------------------------------------------------------------------
# Estadística y Econometría
# ----------------------------------------------------------------------
- statsmodels>=0.14
- linearmodels
- pingouin
- scipy>=1.11
- scikit-learn>=1.3
# ----------------------------------------------------------------------
# Utilidades
# ----------------------------------------------------------------------
- pip
# ----------------------------------------------------------------------
# Paquetes de PyPI (solo disponibles con pip)
# ----------------------------------------------------------------------
- pip:
- wooldridge # Datasets de econometría
- econml # Machine learning causal
- causalml # Inferencia causal
- upsetplot # Gráficos de conjuntos
- arch # Modelos ARCH/GARCH
- pmdarima # ARIMA automáticoPaso 5: Crear Alias Personalizados
Agregar a ~/.config/fish/config.fish:
# Alias para blog de econometría
alias econblog="conda activate econblog && cd ~/Proyectos/epsilon-y-beta"
alias eboff="conda deactivate"
# Jupyter Lab para blog
alias jlab-blog="conda activate econblog && jupyter lab --notebook-dir=~/Proyectos/epsilon-y-beta"
# Quarto para blog
alias qblog="conda activate econblog && cd ~/Proyectos/epsilon-y-beta && quarto preview"Entorno 2: scripts-env (Automatización)
Propósito
Scripts que usa este entorno:
scripts_for_quarto/(sincronización, metadata, tags)scripts_for_calibre/(gestión de PDFs)scripts_for_libreoffice/(conversión de documentos)scripts_for_linux/(utilidades del sistema)scripts_for_zotero/(gestión bibliográfica)
Paso 1: Crear el Entorno
Paso 2: Activar y Agregar Paquetes Adicionales
Paso 3: Verificar Instalación
environment.yml para scripts-env
Crear archivo: ~/Proyectos/scripts/environment.yml
# ========================================================================
# ENTORNO: scripts-env
# Propósito: Scripts de automatización para Quarto, Calibre, LibreOffice, etc.
# Autor: Edison Achalma
# Fecha: Enero 2026
# ========================================================================
name: scripts-env
channels:
- conda-forge
- defaults
dependencies:
# ----------------------------------------------------------------------
# Python
# ----------------------------------------------------------------------
- python=3.12
# ----------------------------------------------------------------------
# Manipulación de Archivos
# ----------------------------------------------------------------------
- pyyaml
- pandas
- openpyxl
- python-docx
- pillow
# ----------------------------------------------------------------------
# Web Scraping y Requests
# ----------------------------------------------------------------------
- requests
- beautifulsoup4
- lxml
# ----------------------------------------------------------------------
# Desarrollo y Testing
# ----------------------------------------------------------------------
- black
- ruff
- pytest
# ----------------------------------------------------------------------
# Utilidades
# ----------------------------------------------------------------------
- pip
# ----------------------------------------------------------------------
# Paquetes de PyPI
# ----------------------------------------------------------------------
- pip:
- pypdf2
- pdfrw
- python-frontmatter
- watchdogPaso 4: Crear Alias
Entorno 3: datascience (Análisis Avanzado)
Propósito
Análisis econométrico avanzado, machine learning, y visualizaciones complejas para investigaciones específicas.
Crear el Entorno
# Entorno completo de ciencia de datos
mamba create -n datascience python=3.12 \
jupyterlab \
pandas \
numpy \
scipy \
scikit-learn \
statsmodels \
xgboost \
lightgbm \
matplotlib \
seaborn \
plotly \
bokeh \
altair \
networkx \
-c conda-forge -y
# Activar y agregar más
conda activate datascience
# Machine learning
pip install \
tensorflow \
torch \
shap \
optuna
# Econometría avanzada
pip install \
linearmodels \
arch \
pymc \
arvizenvironment.yml para datascience
name: datascience
channels:
- conda-forge
- defaults
dependencies:
- python=3.12
- jupyterlab
- pandas
- numpy
- scipy
- scikit-learn
- statsmodels
- xgboost
- lightgbm
- matplotlib
- seaborn
- plotly
- bokeh
- altair
- networkx
- pip
- pip:
- tensorflow
- torch
- shap
- optuna
- linearmodels
- arch
- pymc
- arvizEntorno 4: teaching (Material Educativo)
Propósito
Notebooks y material educativo para estudiantes con versiones estables y probadas.
Crear el Entorno
# Entorno simple y estable para enseñanza
mamba create -n teaching python=3.11 \
jupyterlab \
pandas=2.0 \
numpy=1.24 \
matplotlib=3.7 \
seaborn=0.12 \
scipy=1.11 \
statsmodels=0.14 \
-c conda-forge -y
# Activar
conda activate teaching
# Paquetes educativos
pip install \
wooldridge \
jupyter-book \
jupyterlab-spellcheckerGestión Diaria de Entornos
Comandos Esenciales
# ========================================================================
# LISTAR Y ACTIVAR
# ========================================================================
# Listar todos los entornos
conda env list
# Activar entorno
conda activate econblog
# Desactivar entorno actual
conda deactivate
# ========================================================================
# INSTALAR Y ACTUALIZAR PAQUETES
# ========================================================================
# Instalar paquete nuevo
mamba install pandas -y
# Instalar versión específica
mamba install pandas=2.0.0 -y
# Instalar desde canal específico
mamba install -c conda-forge paquete -y
# Actualizar paquete
mamba update pandas -y
# Actualizar todos los paquetes
mamba update --all -y
# Instalar con pip (si no está en conda)
pip install wooldridge
# ========================================================================
# INFORMACIÓN Y BÚSQUEDA
# ========================================================================
# Listar paquetes instalados
conda list
# Buscar paquete
conda search pandas
# Ver info de paquete específico
conda list pandas
# Ver dependencias de paquete
conda search pandas --info
# ========================================================================
# LIMPIAR Y MANTENER
# ========================================================================
# Limpiar caché de paquetes
conda clean --all -y
# Ver espacio usado por entornos
du -sh ~/miniconda3/envs/*
# Eliminar entorno
conda env remove -n nombre-entorno -y
# ========================================================================
# EXPORTAR E IMPORTAR
# ========================================================================
# Exportar entorno actual
conda env export --no-builds > environment.yml
# Crear entorno desde archivo
conda env create -f environment.yml
# Actualizar entorno desde archivo
conda env update -f environment.yml --pruneWorkflow Típico Diario
Archivos de Requisitos
Tipos de Archivos
| Archivo | Formato | Uso |
|---|---|---|
environment.yml |
YAML (Conda) | Reproducción exacta de entorno conda |
requirements.txt |
Texto (pip) | Solo paquetes de PyPI |
environment-minimal.yml |
YAML | Solo paquetes esenciales (sin versiones) |
1. environment.yml (Completo)
Exportar automáticamente:
Resultado: Archivo con todas las dependencias exactas.
2. environment-minimal.yml (Simplificado)
Crear manualmente:
Ventaja: Más portable, conda resuelve versiones compatibles.
3. requirements.txt (Solo pip)
Exportar paquetes pip:
Instalar desde requirements.txt:
4. Combinar Conda + Pip
Mejor práctica:
Luego crear requirements.txt separado:
Reproducibilidad y Colaboración
Escenario 1: Replicar Entorno en Otra Máquina
En máquina original:
En máquina nueva:
Escenario 2: Compartir con Colaboradores
Crear archivo README.md con instrucciones:
Crear entorno:
Activar entorno:
Verificar instalación:
Uso
## Escenario 3: Actualizar Entorno Existente
**Cuando agregas paquetes nuevos:**
```bash
# 1. Instalar paquete nuevo
mamba install nuevo-paquete -y
# 2. Actualizar archivo
conda env export --no-builds > environment.yml
# 3. Commit y push
git add environment.yml
git commit -m "Add nuevo-paquete dependency"
git push
En otras máquinas:
Integración con Jupyter Lab
1. Instalar Jupyter en Cada Entorno
Importante: Jupyter debe estar instalado en cada entorno que uses.
2. Configurar Kernels
Resultado: Podrás seleccionar “Python (econblog)” en Jupyter Lab.
3. Iniciar Jupyter Lab
4. Extensiones Útiles para Jupyter Lab
5. Configuración de Jupyter
Crear archivo ~/.jupyter/jupyter_lab_config.py:
Integración con VS Code
1. Instalar Extensión de Python
En VS Code: 1. Ir a Extensions (Ctrl+Shift+X) 2. Buscar “Python” 3. Instalar “Python” de Microsoft
2. Seleccionar Intérprete de Conda
Método 1: Command Palette
- Abrir Command Palette (Ctrl+Shift+P)
- Escribir: “Python: Select Interpreter”
- Seleccionar:
Python 3.12.x ('econblog')
Método 2: Barra de Estado
- Click en la barra inferior (muestra Python actual)
- Seleccionar entorno deseado
3. Configurar Workspace
Crear .vscode/settings.json en proyecto:
{
"python.defaultInterpreterPath": "/home/achalmaedison/miniconda3/envs/econblog/bin/python",
"python.terminal.activateEnvironment": true,
"python.formatting.provider": "black",
"python.linting.enabled": true,
"python.linting.ruffEnabled": true,
"[python]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}
}4. Terminal Integrado
VS Code activará automáticamente el entorno cuando abras una terminal.
Verificar:
Resolución de Problemas
Problema 1: “Kernel died” en Jupyter
Causa: Paquetes incompatibles o falta de memoria.
Solución:
# Reinstalar kernel
conda activate econblog
python -m ipykernel install --user --name econblog --display-name "Python (econblog)" --force
# Verificar
jupyter kernelspec list
# Si persiste, recrear entorno
conda env export --no-builds > backup-environment.yml
conda deactivate
conda env remove -n econblog -y
conda env create -f backup-environment.ymlProblema 2: “ModuleNotFoundError” en Jupyter
Causa: Jupyter usa kernel de otro entorno.
Solución:
Problema 3: Conflictos de Versiones
Causa: Paquetes incompatibles entre sí.
Solución:
# Opción 1: Usar mamba (mejor resolver)
conda activate econblog
mamba install paquete-conflictivo -y
# Opción 2: Especificar versiones compatibles
mamba install paquete1=1.0 paquete2=2.0 -y
# Opción 3: Recrear entorno limpio
conda env remove -n econblog -y
mamba create -n econblog -f environment.ymlProblema 4: Entorno Muy Grande
Causa: Demasiados paquetes instalados.
Solución:
Problema 5: Pip vs Conda Conflicts
Causa: Mezclar pip y conda incorrectamente.
Mejores Prácticas:
# 1. Siempre instalar con conda/mamba primero
mamba install pandas matplotlib -y
# 2. Usar pip solo para paquetes no disponibles en conda
pip install wooldridge
# 3. NUNCA mezclar en el mismo comando
# INCORRECTO:
# conda install pandas && pip install wooldridge #
# CORRECTO:
mamba install pandas -y # Primero conda
pip install wooldridge # Luego pipWorkflows Completos
Workflow 1: Nuevo Post de Blog
Contenido de index.qmd:
---
title: "Análisis de Inflación en Perú 2010-2025"
author: "Edison Achalma"
date: "2026-01-03"
categories: [macroeconomía, inflación, análisis-temporal]
jupyter: python3
---
# Introducción
Análisis de la inflación en Perú usando datos del BCRP.
``{python}
import pandas as pd
import matplotlib.pyplot as plt
import wooldridge as wd
``Continuar
Workflow 2: Ejecutar Script de Automatización
# 1. Activar entorno de scripts
conda activate scripts-env
# 2. Ir al directorio de scripts
cd ~/Proyectos/scripts/scripts_for_quarto
# 3. Ejecutar script
python 1_sincronizar_fecha_carpeta_en_index_qmd.py
# 4. Verificar resultados
cat ../epsilon-y-beta/posts/2026-01-analisis-inflacion/index.qmd
# 5. Desactivar entorno
conda deactivateWorkflow 3: Análisis Econométrico Completo
# 1. Activar entorno
conda activate econblog
# 2. Iniciar Jupyter Lab
jupyter lab --notebook-dir=~/Proyectos/epsilon-y-beta/posts
# 3. En Jupyter, crear nuevo notebook
# - Kernel: Python (econblog)
# - Nombre: analisis-econometrico.ipynb
# 4. Desarrollar análisis completo
# 5. Convertir notebook a Quarto
quarto convert analisis-econometrico.ipynb
# 6. Renderizar
quarto render analisis-econometrico.qmd
# 7. Revisar resultado
firefox analisis-econometrico.htmlWorkflow 4: Actualizar Entorno Después de Cambios
Workflow 5: Crear Entorno Temporal para Experimento
# 1. Crear entorno temporal rápido
mamba create -n temp-experiment python=3.12 pandas numpy matplotlib -y
# 2. Activar
conda activate temp-experiment
# 3. Experimentar
python mi_experimento.py
# 4. Si funciona, agregar paquetes a entorno principal
# Si no, eliminar entorno sin afectar nada
conda deactivate
conda env remove -n temp-experiment -yChecklist de Mejores Prácticas
Antes de Crear un Entorno
Al Crear un Entorno
Uso Diario
Colaboración
Mis Comandos de Referencia Rápida
Gestión Básica
Paquetes
Exportar/Importar
Coclusión
En conclusión, el uso de Anaconda o Miniconda se presenta como una solución elegante y sencilla para abordar las desventajas de entorno de Python. A través de miniconda, se puede gestionar de manera eficiente la instalación y actualización de paquetes, así como la creación y exportación de entornos virtuales. Sin embargo, la implementación de estas funcionalidades no es mágica, requiere comprensión y familiaridad con los comandos y procesos asociados.
Además de la gestión de paquetes, Anaconda ofrece una amplia gama de herramientas y paquetes para el análisis de datos, lo cual constituye otro aspecto valioso de su funcionalidad.
Recursos Adicionales
Documentación:
- Conda: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
- Mamba: https://mamba.readthedocs.io/en/latest/user_guide/mamba.html
- Jupyter: https://jupyter.org/documentation
Publicaciones Similares
Si te interesó este artículo, te recomendamos que explores otros blogs y recursos relacionados que pueden ampliar tus conocimientos. Aquí te dejo algunas sugerencias:
- Instalacion De Anaconda
- Configurar Entorno Virtual Python Anaconda
- 01 Introducion A La Programacion Con Python
- 02 Variables Expresiones Y Statements Con Python
- 03 Objetos De Python
- 04 Ejecucion Condicional Con Python
- 05 Iteraciones Con Python
- 06 Funciones Con Python
- 07 Dataframes Con Python
- 08 Prediccion Y Metrica De Performance Con Python
- 09 Metodos De Machine Learning Para Clasificacion Con Python
- 10 Metodos De Machine Learning Para Regresion Con Python
- 11 Validacion Cruzada Y Composicion Del Modelo Con Python
- Visualizacion De Datos Con Python
Esperamos que encuentres estas publicaciones igualmente interesantes y útiles. ¡Disfruta de la lectura!