问题:
是否无法覆盖Python中的HOMEDRIVE
和HOMEPATH
变量?
这些变量存储的确切位置,我在环境变量对话框中看不到它们。
说明:
在Python中,您可以使用
访问环境变量os.environ['variable_name']
例如,如果我转到系统属性 - >高级 - >环境变量,我创建一个名为GARY
的系统变量,其值为XYZ
,然后从我的python脚本中我可以使用
os.environ['GARY']
(按预期返回'XYZ')
但是我无法更改变量HOMEDRIVE
的值。当我在我的python脚本中使用os.environ['HOMEDRIVE']
时,它返回C:
。所以我去了系统属性 - >高级 - >环境变量,我创建了一个名为HOMEDRIVE
的系统变量,并将其值设置为X:
。但是当我使用
os.environ['HOMEDRIVE']
在我的脚本中,它仍然会返回C:
是否无法覆盖HOMEDRIVE
和HOMEPATH
变量?这些是特殊的吗?
这些变量确实存储在哪里,我在“环境变量”对话框中看不到它们。可能它们存储在其他地方,所以即使我在Windows中创建一个HOMEDRIVE
系统变量,它也会从其他地方被覆盖。
答案 0 :(得分:2)
如果只想在Python中覆盖变量,可以在代码中执行:
os.environ['HOMEDRIVE'] = 'D:'
如果将其放在sitecustomize.py中,则每次调用Python脚本时都会运行它。来自doc:
...尝试导入模块 命名为sitecustomize,可以执行任意特定于站点的 自定义。它通常由系统管理员创建 site-packages目录。
但是,如果要在Windows中修改环境变量,请参阅this superuser stackexchange answer。