繁体   English   中英

在python中设置环境变量

[英]Setting environment variables within python

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

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

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

在启动任何使用这些环境变量的例程之前,我该怎么做才能在python中获取env.sh

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

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

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

     export SOMETHING=$FOO/Bar 

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

还有另一种我尚未发现或未想到的方法吗?

一些选项:

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

环境变量的采购很普遍,我不建议自己动手。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM