PyCharm中Jupyter Notebook无法读取环境变量的问题及解决方法
环境变量在Jupyter Notebook中无法获取的原因及解决方法
核心原因
- 环境变量作用域限制:通过
export kuku=bubu设置的变量仅属于当前shell会话,若Jupyter Notebook不是从该shell启动,无法继承此临时变量。比如PyCharm或Jupyter从独立会话(如桌面快捷方式、PyCharm自身启动进程)启动时,就拿不到这个变量。 - 虚拟环境隔离特性:pipenv创建的虚拟环境默认会隔离系统临时环境变量,仅继承少量核心系统变量,手动设置的
kuku不会自动进入虚拟环境上下文。 - PyCharm环境独立配置:PyCharm拥有独立的环境变量管理体系,不会自动同步外部shell中临时设置的变量,通过PyCharm启动的Jupyter自然无法读取到该变量。
解决方法
方法1:从设置变量的shell中启动Jupyter
在执行export kuku=bubu的同一shell窗口中,先激活pipenv虚拟环境:
pipenv shell
随后在该shell内启动Jupyter Notebook:
jupyter notebook
此方式下Jupyter会继承当前shell的所有环境变量,调用os.getenv("kuku")即可返回bubu。
方法2:写入虚拟环境激活脚本永久生效
找到pipenv虚拟环境的activate脚本(通常路径为~/.local/share/virtualenvs/[你的虚拟环境名称]/bin/activate),在脚本末尾添加:
export kuku=bubu
之后每次激活该虚拟环境时,变量会自动加载,无论从哪个会话启动Jupyter,只要激活了此虚拟环境就能读取到变量。
方法3:在PyCharm中配置环境变量
- 打开PyCharm的
Run/Debug Configurations,找到Jupyter Notebook的配置项。 - 在
Environment variables区域点击添加按钮,输入变量名kuku,值bubu。 - 保存配置后重启Jupyter Notebook,此时
os.getenv("kuku")即可获取到对应值。
方法4:Jupyter会话内临时设置(仅当前会话有效)
若仅需临时测试,可在Jupyter的代码单元格中直接设置:
import os os.environ["kuku"] = "bubu"
该方式仅在当前Notebook会话中生效,关闭后变量即失效。
内容的提问来源于stack exchange,提问作者SteveS
相关产品推荐
相关产品推荐

