Cómo configurar la variable env en el cuaderno Jupyter
Tengo el problema de que Jupyter no puede ver la variable env en el archivo bashrc. ¿Hay alguna manera de cargar estas variables en jupyter o agregarle variables personalizadas?
Para configurar una variable env en un cuaderno jupyter, simplemente use %
comandos mágicos, ya sea %env
o %set_env
, por ejemplo, %env MY_VAR=MY_VALUE
o %env MY_VAR MY_VALUE
. (Úselo %env
solo para imprimir las variables ambientales actuales).
Ver: http://ipython.readthedocs.io/en/stable/interactive/magics.html
También puede configurar las variables en su kernel.json
archivo:
Mi solución es útil si necesita las mismas variables de entorno cada vez que inicia un kernel jupyter, especialmente si tiene varios conjuntos de variables de entorno para diferentes tareas.
Para crear un nuevo kernel ipython con sus variables de entorno, haga lo siguiente:
- Lea la documentación en https://jupyter-client.readthedocs.io/en/stable/kernels.html#kernel-specs
- Ejecute
jupyter kernelspec list
para ver una lista con los kernels instalados y dónde están almacenados los archivos. - Copie el directorio que contiene kernel.json (por ejemplo, llamado
python2
) a un nuevo directorio (por ejemplopython2_myENV
). - Cambie el
display_name
en el nuevokernel.json
archivo. - Agregue un
env
diccionario que defina las variables de entorno.
Su kernel json podría verse así (no modifiqué nada del kernel.json instalado excepto display_name
y env
):
{
"display_name": "Python 2 with environment",
"language": "python",
"argv": [
"/usr/bin/python2",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"env": {"LD_LIBRARY_PATH":""}
}
Casos de uso y ventajas de este enfoque.
- En mi caso de uso, quería configurar la variable
LD_LIBRARY_PATH
que afecta cómo se cargan los módulos compilados (por ejemplo, escritos en C). Configurar esta variable usando%set_env
no funcionó. - Puedo tener varios núcleos de Python con diferentes entornos.
- Para cambiar el entorno, solo tengo que cambiar/reiniciar el kernel, pero no tengo que reiniciar la instancia de jupyter (útil si no quiero perder las variables en otro cuaderno). Ver, sin embargo, https://github.com/jupyter/notebook/issues/2647
Si está usando Python, puede definir sus variables de entorno en un .env
archivo y cargarlas desde un cuaderno Jupyter usando python-dotenv .
Instale Python-dotenv:
pip install python-dotenv
Cargue el .env
archivo en un cuaderno Jupyter:
%load_ext dotenv
%dotenv