gpt4 book ai didi

python - 从 shell 脚本加载环境变量

转载 作者:太空狗 更新时间:2023-10-29 22:29:56 25 4
gpt4 key购买 nike

我有一个包含一些我想在 python 脚本中使用的环境变量的文件

命令行下的工作

$ source myFile.sh
$ python ./myScript.py

并且从 python 脚本内部我可以访问像

这样的变量
import os
os.getenv('myvariable')

我如何获取 shell 脚本,然后使用 python 脚本访问变量?

最佳答案

如果您说的是向后环境传播,抱歉,您不能。这是一个安全问题。但是,直接来自 python 的源环境绝对有效。但这或多或少是一个手动过程。

import subprocess as sp

SOURCE = 'your_file_path'
proc = sp.Popen(['bash', '-c', 'source {} && env'.format(SOURCE)], stdout=sp.PIPE)

source_env = {tup[0].strip(): tup[1].strip() for tup in map(lambda s: s.strip().split('=', 1), proc.stdout)}

然后你在 source_env 中拥有你需要的一切。

如果您需要将其写回您的本地环境(不推荐这样做,因为 source_env 让您保持干净):

import os

for k, v in source_env.items():
os.environ[k] = v

这里需要注意另一个小问题,因为我在这里调用了 bash,你应该期望规则也适用于这里。因此,如果您希望看到您的变量,则需要导出它们。

export VAR1='see me'
VAR2='but not me'

关于python - 从 shell 脚本加载环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31117531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com