python os.getenv()没有看到来自Jupyter笔记本的任何自定义变量(os x el capitan)

Phi*_*ats 6 python bash environment-variables jupyter

我在bash中声明了几个变量(通过〜/ .bash_profile),它们在bash本身以及在bash中启动的python中工作.

例:

export PUIBy="Dropbox/CUSP/1_1_PUI/PUI_Bycicle_Research/"
Run Code Online (Sandbox Code Playgroud)

但是,当我启动Jupyter笔记本时,os.environ看不到它们中的任何一个,显示一些默认的变量列表(PWD,SUDO_USER,USERNAME,JPY_PARENT_PID,SSH_AUTH_SOCK,SUDO_UID,GIT_PAGER等)

我的系统是Mac OS El Captain,anaconda ipython 2.7

Vla*_*lad 4

其实这个问题与Jupyter无关。它更与不同的.bash文件如何加载有关。

从这里引用

.bash_profile 针对登录 shell 执行,而 .bashrc 针对交互式非登录 shell 执行。

当您通过控制台登录(输入用户名和密码)时,无论是坐在计算机上还是通过 ssh 远程登录:在初始命令提示符之前执行 .bash_profile 以配置您的 shell。

因为您将变量放入 .bash_profile 中,所以它仅在终端 shell 中可用,但在非交互式 shell 中不可用。

Jupyter-notebook 是一个 Web 应用程序,即使它在您的本地计算机上运行并且您从本地计算机访问它(在大多数情况下)。每次打开笔记本时,它都会在自己的非交互式 shell 中启动内核。因此,如果您希望环境变量在 shell 中可见,请将它们放入.bashrc文件中,而不是.bash_profile

另外,要查看设置了哪些变量,请!export在 Jupyter 笔记本中使用命令