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'
将环境传播到外部脚本的正确方法是什么?
这在常见问题解答中略有介绍:
基本上,SCons 构建了一组干净的可重现环境变量,因此任何用户环境中的差异都不会破坏构建。
因此,如果您想从 shell 传播特定变量,您可以明确地这样做:
env['ENV']['MY_VARIABLE']=os.environ['MY_VARIABLE']
如果您想传播所有环境变量,您可以这样做:
env['ENV'] = os.environ
env 是你的环境()
在我的 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'
将环境传播到外部脚本的正确方法是什么?
这在常见问题解答中略有介绍:
基本上,SCons 构建了一组干净的可重现环境变量,因此任何用户环境中的差异都不会破坏构建。
因此,如果您想从 shell 传播特定变量,您可以明确地这样做:
env['ENV']['MY_VARIABLE']=os.environ['MY_VARIABLE']
如果您想传播所有环境变量,您可以这样做:
env['ENV'] = os.environ
env 是你的环境()