【发布时间】:2023-08-16 08:30:01
【问题描述】:
我正在尝试在脚本调用的函数中使用环境变量。 我看到的问题是第一次设置变量,但是下次调用脚本时,它使用旧变量值。 我正在使用 exec() 调用 python 脚本。
这是最简单的例子:
文件:test_run.py
import os
import sys
from io import StringIO
sigmas = [2.,20.]
for sigma in sigmas:
os.environ['SIGMA'] = str(sigma)
buffer = StringIO()
sys.stdout = buffer
exec(open("parent.py").read())
sys.stdout = sys.__stdout__
result = buffer.getvalue()
print (result)
#print('SIGMA', os.environ['SIGMA'])
buffer.close()
文件:parent.py
import child
sigma_parent = float(os.environ['SIGMA'])
print (' Parent Function Sigma = ', sigma_parent)
child.my_func();
文件:child.py
import os
sigma_child = float(os.environ['SIGMA'])
def my_func():
print (' Child Function Sigma = ', sigma_child)
输出:
Parent Function Sigma = 2.0
Child Function Sigma = 2.0
Parent Function Sigma = 20.0
Child Function Sigma = 2.0
【问题讨论】:
标签: python-3.x environment-variables exec