Python - 覆盖环境变量homedrive和homepath

时间:2013-05-15 15:23:41

标签: python environment

问题: 是否无法覆盖Python中的HOMEDRIVEHOMEPATH变量? 这些变量存储的确切位置,我在环境变量对话框中看不到它们。

说明:

在Python中,您可以使用

访问环境变量
os.environ['variable_name']

例如,如果我转到系统属性 - >高级 - >环境变量,我创建一个名为GARY的系统变量,其值为XYZ,然后从我的python脚本中我可以使用

成功访问它
os.environ['GARY'] 

(按预期返回'XYZ')

但是我无法更改变量HOMEDRIVE的值。当我在我的python脚本中使用os.environ['HOMEDRIVE']时,它返回C:。所以我去了系统属性 - >高级 - >环境变量,我创建了一个名为HOMEDRIVE的系统变量,并将其值设置为X:。但是当我使用

os.environ['HOMEDRIVE']

在我的脚本中,它仍然会返回C:

是否无法覆盖HOMEDRIVEHOMEPATH变量?这些是特殊的吗?

这些变量确实存储在哪里,我在“环境变量”对话框中看不到它们。可能它们存储在其他地方,所以即使我在Windows中创建一个HOMEDRIVE系统变量,它也会从其他地方被覆盖。

1 个答案:

答案 0 :(得分:2)

如果只想在Python中覆盖变量,可以在代码中执行:

os.environ['HOMEDRIVE'] = 'D:'

如果将其放在sitecustomize.py中,则每次调用Python脚本时都会运行它。来自doc:

  

...尝试导入模块   命名为sitecustomize,可以执行任意特定于站点的   自定义。它通常由系统管理员创建   site-packages目录。

但是,如果要在Windows中修改环境变量,请参阅this superuser stackexchange answer。