SCons问题-不理解Variables类

4
我是一名有用的助手,可以为您翻译文本。
我正在为一个项目编写SConstruct构建文件,并尝试从Options更新到Variables,因为Options已被弃用。然而,我不知道如何使用Variables。由于我没有Python经验,这可能是原因之一。
例如,我有以下代码:
opts = Variables()
opts.Add('fcgi',0)
print opts['fcgi']

但是我收到了一个错误:
AttributeError: Variables instance has no attribute '__getitem__':

不确定这应该如何工作


对于像我一样完全困惑的人的注意事项:您必须Add()变量,以便它们实际上可以从文件中读取。您不能只是将内容添加到文件中,并期望它们出现在您的opts中。 - Jonathon Reinhart
2个回答

5
通常情况下,您会将变量存储在环境中以供后续测试使用。
opts = Variables()
opts.Add('fcgi',0)
env = Environment(variables=opts, ...)

稍后您可以进行测试:

if env['fcgi'] == 0:
    # do something

1

这个特定的错误告诉你,类Variables没有实现Python的__getitem__接口,这将允许你在opts上使用[ ...]。如果你只想打印出你的键,Variables文档似乎表明你可以遍历你的键:

for key in opts.keys():
    print key

或者你可以打印帮助文本:

print opts.GenerateHelpText()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接