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

Python script running from SCONS cannot access environment variables

在我的 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'

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

这在常见问题解答中略有介绍:

FAQ

基本上,SCons 构建了一组干净的可重现环境变量,因此任何用户环境中的差异都不会破坏构建。

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

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

如果您想传播所有环境变量,您可以这样做:

env['ENV'] = os.environ

env 是你的环境()