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
其实这个问题与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 笔记本中使用命令