我有一个带有默认值的 os.environ
配置(满足我 90% 的需求)。我有一个特殊的应用程序框架包,例如称为 SALOME
,它不提供包安装到系统环境中并试图自包含,它还需要使用依赖于环境的特殊旧技术因此 sys.path
和 PYTHONPATH
变量并不是它唯一需要的东西。当它开始在它创建的环境中调用 os.environ
时,我可以获得它需要的所有变量。然后我可以序列化那个 os.environ
字典。
我想知道如何将我当前运行的系统上的 os.environ
与通过序列化获得的系统合并?
最佳答案
假设您已执行类似以下操作来序列化环境:
import json
import os
with open('environ.json', 'w') as f:
json.dump(dict(**os.environ), f)
你现在可以像这样读回那些(在另一个程序中)
import json
import os
with open('environ.json', 'r') as f:
os.environ.update(json.load(f))
这只会添加或更改当前环境变量以匹配已保存的环境变量,但任何其他变量都将保留。
如果您只想通过添加特定变量来更新它们(例如添加额外的路径),您可以明确地这样做:
with open('environ.json', 'r') as f:
loadedenv = json.load(f)
pathvars = ['PATH', 'PYTHONPATH']
for p in pathvars:
os.environ[p] += ':' + loadedenv[p]
关于python - 如何在 python 中执行 os.environ 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36231681/