Cómo montar un ambiente de trabajo para data science
Estos son los pasos que sigo para dejar listo un ambiente de trabajo de data science / analytics. Dejo dos caminos: uno con conda y otro con Docker. Elige el que prefieras.
Opción 1: con conda
Instalar miniconda
Descarga el instalador de miniconda y córrelo, por ejemplo:
bash ~/Downloads/Miniconda3-latest-MacOSX-x86_64.sh
Sigue los pasos, lee los términos y ten paciencia. Si no quieres que el ambiente
base se active automáticamente al abrir la terminal:
conda config --set auto_activate_base false
Crear el ambiente
La documentación oficial lo explica a detalle. Un resumen:
# En un path específico
conda create --prefix ./envs
conda activate ./envs
# En el path default, por nombre
conda create --name myenv
conda activate myenv
# Con una versión específica de Python
conda create --name envp39 python=3.9
Me gusta instalar pip dentro de conda, sobre todo para instalar repositorios o
librerías internas/privadas:
conda install pip
Instalar librerías
Antes de instalar más cosas, hago un folder de prueba:
mkdir -p workspace/dummy_project
cd workspace/dummy_project
Ahí pongo un requirements.txt con lo que necesito. El mío, para trabajo de
data science / analytics, se ve más o menos así:
pandas
numpy
scipy
scikit-learn
imbalanced-learn
mlxtend
shap
bayesian-optimization
matplotlib
seaborn
plotly
kaleido
jupyter
jupyterlab
ipykernel
ipywidgets
openpyxl
sqlalchemy
psycopg2-binary
pyathena
mysql-connector-python
boto3
botocore
unidecode
Y lo instalo:
pip install -r requirements.txt
Cuidado con
psycopg2: en algunos ambientes me funciona mejorpsycopg2-binary.
Registrar el kernel en Jupyter
Como último paso, registro el ambiente como kernel de Jupyter:
python -m ipykernel install --user --name=envp39
Corre jupyter notebook, verifica que el kernel aparezca y que todo funcione.
En este punto ya estás listo para desarrollar.
Opción 2: con Docker
Si prefieres no pelear con instalaciones locales, puedes empaquetar el ambiente en una imagen de Docker. Primero instala Docker Desktop.
El Dockerfile
Uso un Dockerfile como este (junto al requirements.txt de arriba):
FROM ubuntu:latest
RUN apt-get update -y \
&& apt-get install -y python3-pip python3-dev libpq-dev git nano \
&& ln -s /usr/bin/python3 /usr/bin/python
WORKDIR /workspace
COPY requirements.txt requirements.txt
RUN pip3 install --upgrade pip \
&& pip3 install -r requirements.txt
Si necesitas instalar paquetes privados (por ejemplo un repo interno), no pongas tokens dentro del
Dockerfile: pásalos como build secrets o variables de entorno en tiempo de build, nunca hardcodeados.
Construye la imagen:
docker build -t dscontainer:v1 .
Correr el contenedor
docker run --rm -it -p 8888:8888 \
--mount type=bind,source="$(pwd)",target=/workspace \
dscontainer:v1
Usar Jupyter dentro del contenedor
jupyter notebook --ip 0.0.0.0 --allow-root
Copia y pega la URL que aparece al arrancar el notebook. Si necesitas variables
de entorno o credenciales dentro del contenedor, cópialas a su ~/.bashrc
(por ejemplo desde tu ~/.zshrc local) y recarga con exec $SHELL.
Guardar cambios en la imagen
Si instalas algo adicional y quieres conservarlo:
# Ver el id del contenedor
docker container ls
# Guardar los cambios en una nueva versión de la imagen
docker commit <id_container> dscontainer:v1.1
Luego sal del contenedor y vuelve a correrlo con el nuevo nombre:
docker run --rm -it -p 8888:8888 \
--mount type=bind,source="$(pwd)",target=/workspace \
dscontainer:v1.1
Con cualquiera de los dos caminos ya tienes un ambiente reproducible para trabajar en proyectos de data science.