从SCONS运行的Python脚本无法访问环境变量

时间:2017-11-09 22:14:19

标签: python environment-variables scons

在我的scons脚本中,我执行另一个python脚本:

fs = env.Command('fs', None, 'python updatefs.py')
AlwaysBuild(fs)
Depends(fs,  main)

在python脚本中,我试图访问一个环境变量:

import os
mode = os.environ['PROC_MODE']

该变量先前已在shell中设置:

export PROC_MODE='some_mode'

Python抱怨:

KeyError: 'PROC_MODE'

将环境传播到外部脚本的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

常见问题解答中简单介绍了这一点:

FAQ

基本上,SCons构造了一组干净的可重复的环境变量,这样任何用户环境的差异都不会破坏构建。

因此,如果您想从shell传播特定变量,可以明确地这样做:

env['ENV']['MY_VARIABLE']=os.environ['MY_VARIABLE']

如果您想要改进所有环境变量,请执行以下操作:

env['ENV'] = os.environ

env是你的环境()