python - 如何在 python 中执行 os.environ 连接?

标签 python python-2.7 environment-variables

我有一个带有默认值的 os.environ 配置(满足我 90% 的需求)。我有一个特殊的应用程序框架包,例如称为 SALOME,它不提供包安装到系统环境中并试图自包含,它还需要使用依赖于环境的特殊旧技术因此 sys.pathPYTHONPATH 变量并不是它唯一需要的东西。当它开始在它创建的环境中调用 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/

相关文章:

c# - 我可以从 csharp 中的编译时环境变量创建常量吗?

Python导入名称冲突

python - 解析字符串模式 - Python

python - 正则表达式删除python中的特定单词

Python:导出后 os.environ KeyError

docker - ${DOCKER_REGISTRY-} 在哪里设置

python - 即使顺序不同,如何检查字符串中的单词 - PYTHON

python - 我如何根据时态(现在时、过去时、将来时等)对句子进行分类?

python - 收到错误 : list assignment index out of range

python - 语法错误 : prefix 'a' not found in prefix map