获取外部环境变量的值

时间:2015-09-29 04:46:24

标签: environment-variables scons include-path

我不确定正确的说法是'外部环境变量'。这是一个不起眼的问题,但我在scons的文档中找不到。我想通过以下方式添加路径:

env = Environment (CPPPATH = ['${PETSC_DIR}/include'])

但是scons认为${PETSC_DIR}的值是空白的。我在shell中检查了echo的值,它给出了正确的值。我怎样才能让scons认识到它的价值?

1 个答案:

答案 0 :(得分:2)

默认情况下,SCons不会导入shell变量,以便通过不影响您在终端/ shell中定义的内容的构建环境来保证可重复的构建。 但是,您可以决定导入这些变量......并且它在我们的#34;最常见的常见问题解答中排名第一,并且#34;在https://bitbucket.org/scons/scons/wiki/FrequentlyAskedQuestions

import os
env = Environment(ENV = os.environ)

用于导入所有内容,或

path = ['/bin', '/usr/bin', '/path/to/other/compiler/bin']
env = Environment(ENV = {'PATH' : path})

表示单个变量,例如本例中的PATH。上面的代码片段将使构建环境中的所有shell变量(或仅PATH)可用,如变量ENV所定义。 要在CPPPATH定义中替换用户定义的shell变量,它必须存在于SCons环境本身中。您可以将其视为字典,因此以下内容应该有效:

import os
env = Environment(ENV = os.environ)
env['PETSC_DIR'] = os.environ.get('PETSC_DIR','default')
env.Append(CPPPATH=["$PETSC_DIR/include"])
相关问题