Имя 'OptionGroup' не определено

Эта ошибка делается строго по следующим примерам, найденным в документации. И вы нигде не найдете никаких разъяснений, будь то длинная длинная страница документов, Google или stackru. Плюс чтение optparse.py показывает, что OptionGroup существует, так что добавляет путаницы.

Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29) 
>>> from optparse import OptionParser
>>> outputGroup = OptionGroup(parser, 'Output handling')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'OptionGroup' is not defined

Могу поспорить, что кому-то понадобится менее 1 минуты, чтобы обнаружить мою ошибку.:)

Да, это означает, что я знал ответ, но так как это заняло у меня так много времени, я решил "задокументировать" его здесь.

1 ответ

Решение

Возможно, это еще один пример того, почему лучше импортировать модули, чем функции из модулей.

OptionGroup определяется в модуле optparse, Команда

from optparse import OptionParser

путы OptionParser в глобальном пространстве имен, но пренебрегает OptionGroup полностью.

Чтобы исправить код, импортируйте optparse модуль, и получить доступ к его частям следующим образом:

import optparse
parser = optparse.OptionParser()
outputGroup = optparse.OptionGroup(parser, 'Output handling')
Другие вопросы по тегам