python中os.putenv(key,value)和os.environ[key]=value之间有什么区别?
我需要构建一个系统环境变量,我使用python中os.putenv(key,value)和os.environ[key]=value之间有什么区别?,python,operating-system,Python,Operating System,我需要构建一个系统环境变量,我使用os.putenv(key,value)构建一个,然后print os.getenv(key),控制台输出None 但是当我使用os.environ[key]=value构建它时,控制台输出值(这里是print os.getenv(key)或print os.environ[key]) 但是,如果print os.environ,则键和值不在字典中 为什么我不能成功构建系统环境变量?我使用Windows 7和Python 2.7.5。如果您阅读,您将得到os.p
os.putenv(key,value)
构建一个,然后print os.getenv(key)
,控制台输出None
但是当我使用os.environ[key]=value
构建它时,控制台输出值(这里是print os.getenv(key)
或print os.environ[key]
)
但是,如果print os.environ
,则键和值不在字典中
为什么我不能成功构建系统环境变量?我使用Windows 7和Python 2.7.5。如果您阅读,您将得到os.putenv不工作的原因的答案:
此映射在第一次导入操作系统模块时捕获,通常在
Python启动作为processing site.py的一部分。之后对环境所做的更改
这一次不会反映在os.environ中,但通过修改
操作系统环境直接
如果平台支持putenv()函数,则此映射可用于修改
环境以及查询环境。将自动调用putenv()
当映射被修改时
注意:直接调用putenv()不会改变os.environ,因此最好修改
环境操作系统
好的,我使用os.environ[key]=value在Pythonshell中成功地构建了一个系统环境变量。但是如果我关闭python shell,为什么系统环境变量不存在呢?我知道系统环境变量只存在于当前的python shell中,如果我想在windows操作系统中保存系统环境变量,我必须导入_winreg模块来构建系统环境变量。顺便说一句,非常感谢您耐心的解释:DIt是在函数完成时恢复环境变量的良好实践。您可能需要使用本文中描述的
modified_environ
上下文管理器之类的工具来恢复环境变量。