2

问题:在 Python 中是否不能覆盖HOMEDRIVEandHOMEPATH变量?这些变量究竟存储在哪里,我在环境变量对话框中看不到它们。

解释:

在 Python 中,您可以使用访问环境变量

os.environ['variable_name']

例如,如果我转到 System Properties -> Advanced -> Environment variables,并创建一个名为GARYvalue的系统变量XYZ,那么从我的 python 脚本中,我可以使用成功访问它

os.environ['GARY'] 

(它按预期返回'XYZ')

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

os.environ['HOMEDRIVE']

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

不能覆盖HOMEDRIVEandHOMEPATH变量吗?这些在某些方面是特别的吗?

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

4

1 回答 1

3

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

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

如果将它放在sitecustomize.py中,那么每次调用 Python 脚本时都会运行它。从文档:

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

但是,如果您想修改 Windows 本身的环境变量,请参阅超级用户 stackexchange 答案。

于 2013-05-15T15:50:12.047 回答