Question

I'm working on an SConstruct build file for a project and I'm trying to update from Options to Variables, since Options is being deprecated. I don't understand how to use Variables though. I have 0 python experience which is probably contributing to this.

For example, I have this:

opts = Variables()
opts.Add('fcgi',0)
print opts['fcgi']

But I get an error:

AttributeError: Variables instance has no attribute '__getitem__':

Not sure how this is supposed to work

Was it helpful?

Solution

Typically you would store the variables in your environment for later testing.

opts = Variables()
opts.Add('fcgi',0)
env = Environment(variables=opts, ...)

Then later you can test:

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

OTHER TIPS

That specific error tells you that class Variables hasn't implemented python's __getitem__ interface which would allow you to use [ ...] on opts. If all you want to do is print out your keys, the Variables documentation seems to indicate that you can iterate over your keys:

for key in opts.keys():
    print key

Or you can print out the help text:

print opts.GenerateHelpText()
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top