【发布时间】:2017-01-28 09:03:51
【问题描述】:
如下图所示,我有 'SPARK_HOME' 环境变量:
但是我无法通过 python 获取它:
import os
os.environ.get('SPARK_HOME', None) # returns None
"SPARK_HOME" in os.environ # returns False
我做错了什么?操作系统是Windows 7 PS:我可以获取其他变量,例如:
spark_home = os.environ.get('PYTHONPATH', None)
print spark_home # returns correct path
【问题讨论】:
-
@idjaw 不错的链接,老实说,我最初尝试了几乎所有来自 linl 的代码
-
环境变量编辑器向顶层窗口发送“Environment”
WM_SETTINGCHANGE消息。 Explorer 看到此消息并从注册表值重新加载其环境;它几乎是唯一查找此消息的程序。控制台程序通常甚至不拥有任何窗口。您需要启动一个新的 cmd.exe 或 python.exe 实例,并以 Explorer 作为父级,因此它将继承更新的环境。 -
Total Commander 还会查找
WM_SETTINGCHANGE并更新它自己的环境变量列表,其中还包含一些与 Total Command 相关的环境变量。这可以在从 Total Commander 中启动cmd.exe并运行set时看到。然后使用 Windows 系统控制面板添加/修改用户或系统环境变量,并在使用 OK 按钮关闭环境变量对话框窗口后,从 Total Commander 中再启动一个cmd.exe并在第二个命令过程中执行set实例。添加/修改的变量显示在第二个 cmd 中。
标签: python windows python-2.7 operating-system environment-variables