[英]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
正确解析可能会变得很复杂。
还有另一种我尚未发现或未想到的方法吗?
一些选项:
环境变量的采购很普遍,我不建议自己动手。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.