如何使环境变量更改在Python中保持不变?

2024-03-29 00:26:08 发布

您现在位置:Python中文网/ 问答频道 /正文

据我所读,Python实例中对环境变量的任何更改都只在该实例中可用,并在实例关闭后消失。有没有什么办法让他们坚持到系统中去?

我需要这样做的原因是,在我工作的工作室中,像Maya这样的工具在很大程度上依赖于环境变量来配置跨多个平台的路径。

我的测试代码是

import os
os.environ['FAKE'] = 'C:\\'

打开另一个Python实例并请求os.environ['FAKE']将生成KeyError

注意:可移植性将是一个问题,但我正在编写的小API将能够检查OS版本,并在必要时触发不同的命令。

也就是说,我已经走上了使用Windows注册表技术的路线,只需编写替代方法,在其他平台上调用shell脚本作为需求。


Tags: 工具实例路径os系统environ环境变量原因
3条回答

在Windows下,您可以使用this recipe通过注册表持久地更改环境变量,尽管这看起来有点过头了。

为了回应布莱恩的问题,你想完成什么?也许有一个更简单的方法。

make them stick by committing them to the system?

我觉得你有点困惑。没有“系统”环境。每个进程都有自己的环境作为其内存的一部分。一个过程只能改变它自己的环境。流程可以为其创建的流程设置初始环境。

如果您真的认为您需要为系统设置环境变量,那么您将需要在最初加载环境变量的位置(如windows上的注册表或Linux上的shell配置文件)进行更改。

您可以在命令行使用SETX。

默认情况下,这些操作在用户env vars上进行。 要设置和修改系统变量,请使用/M标志

import os
env_var = "BUILD_NUMBER"
env_val = "3.1.3.3.7"
os.system("SETX {0} {1} /M".format(env_var,env_val))

相关问题 更多 >