Проблема SCons - не понимаю класс переменных - PullRequest
3 голосов
/ 19 января 2009

Я работаю над файлом компоновки SConstruct для проекта и пытаюсь обновить параметры с параметров на переменные, поскольку параметры устарели. Я не понимаю, как использовать переменные, хотя. У меня 0 опыта работы с питоном, что, вероятно, способствует этому.

Например, у меня есть это:

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

Но я получаю ошибку:

AttributeError: Variables instance has no attribute '__getitem__':

Не уверен, как это должно работать

Ответы [ 2 ]

5 голосов
/ 12 февраля 2009

Обычно вы храните переменные в вашей среде для последующего тестирования.

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

Тогда позже вы можете проверить:

if env['fcgi'] == 0:
    # do something
1 голос
/ 24 января 2009

Эта конкретная ошибка говорит вам, что в классе Variables не реализован __getitem__ интерфейс Python , который позволил бы вам использовать [ ...] на opts. Если все, что вам нужно, это распечатать ключи, документация Variables , кажется, указывает, что вы можете перебирать свои ключи:

for key in opts.keys():
    print key

Или вы можете распечатать текст справки:

print opts.GenerateHelpText()
...