【问题标题】:Python os library does not see environment variables in WindowsPython os 库在 Windows 中看不到环境变量
【发布时间】: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


【解决方案1】:

要让您的 python 开始看到新变量,您需要重新启动控制台,而不仅仅是 ipython notebook!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 2012-07-07
    • 2021-10-20
    • 2019-03-01
    • 2016-07-30
    • 2018-02-17
    • 2015-05-10
    相关资源
    最近更新 更多