Cómo configurar la variable env en el cuaderno Jupyter

Resuelto Ehab AlBadawy asked hace 7 años • 12 respuestas

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?

Ehab AlBadawy avatar Jun 18 '16 04:06 Ehab AlBadawy
Aceptado

Para configurar una variable env en un cuaderno jupyter, simplemente use %comandos mágicos, ya sea %envo %set_env, por ejemplo, %env MY_VAR=MY_VALUEo %env MY_VAR MY_VALUE. (Úselo %envsolo para imprimir las variables ambientales actuales).

Ver: http://ipython.readthedocs.io/en/stable/interactive/magics.html

michael avatar May 30 '2017 00:05 michael

También puede configurar las variables en su kernel.jsonarchivo:

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 listpara 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 ejemplo python2_myENV).
  • Cambie el display_nameen el nuevo kernel.jsonarchivo.
  • Agregue un envdiccionario que defina las variables de entorno.

Su kernel json podría verse así (no modifiqué nada del kernel.json instalado excepto display_namey 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_PATHque afecta cómo se cargan los módulos compilados (por ejemplo, escritos en C). Configurar esta variable usando %set_envno 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
Bernhard avatar Dec 03 '2018 14:12 Bernhard

Si está usando Python, puede definir sus variables de entorno en un .envarchivo y cargarlas desde un cuaderno Jupyter usando python-dotenv .

Instale Python-dotenv:

pip install python-dotenv

Cargue el .envarchivo en un cuaderno Jupyter:

%load_ext dotenv
%dotenv
aparkerlue avatar Jan 03 '2019 19:01 aparkerlue