gpt4 book ai didi

python - 在python中设置环境变量

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:21 29 4
gpt4 key购买 nike

这个主题有很多问题,但不幸的是他们没有解决我的问题。

我有一个 shell 脚本,其目的只是设置环境变量(我们称它为 env.sh)。第二个 shell 脚本是源 env.sh 并使用在那里定义的变量的主程序脚本。当两者都是 bash 脚本时,这很好用。

我有一个问题,我试图用 python 程序替换主 shell 脚本。这个 python 程序也依赖于 env.sh 设置的那些环境变量。

在开始使用这些环境变量的任何例程之前,我可以如何在 python 中获取 env.sh 源代码?

  • 我必须使用模块子进程运行 bash -c source env.sh。但如果我理解正确的话,这是行不通的,因为变量是在调用 python 程序的子进程中设置的,因此在父进程中不可用。这是正确的吗?

  • 类似的解决方案是使用 bash -c source env.sh && env 并在 python 中读取 env 的输出,遍历列表并写入 os.environ。但是这种方法会再次写入每个变量,即使它已经被定义了。如果变量很多怎么办?

  • 我能想到的最后一个解决方案是读取和解析 env.sh 文件并设置我能找到的变量。一个问题是 env.sh 中的一些导出是嵌套的,意味着:

    export SOMETHING=$FOO/Bar

    正确解析这可能会变得很复杂。

还有没有其他方法我还没有找到或者没有想到?

最佳答案

一些选项:

  1. https://github.com/mattseymour/python-env
  2. https://github.com/rconradharris/envparse

Env 变量源很常见,我不建议自己动手。

关于python - 在python中设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33102516/

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