我正在尝试在sphinx中为我的项目编写文档,每当sphinx在我的模块中遇到OptionParser时,它就会给我:
sphinx-build: error: no such option: -b
我认为这是不可能的,所以我写了一个简单的模块来检查这个:
from optparse import OptionParser
"""some comment here"""
parser = OptionParser(conflict_handler='resolve')
parser.add_option('', '--force', action='store_true', dest='force', default=False, help='gqdel will skip asking questions, and delete them all.');
parser.add_option('', '--verbose', action='store_true', dest='verbose', default=False, help='Report additional information from gqdel')
(options, args) = parser.parse_args()
"""and here"""
print "foo"
它给了我同样的错误。 我的第一个看起来像这样:
some title
==========
.. automodule:: test
:members:
答案 0 :(得分:17)
以下是我的想法:
当Sphinx运行时,autodoc会导入您的模块,并执行模块中的顶级代码。创建一个OptionParser实例,它处理传递给sphinx-build,one of which is -b的命令行参数和选项。您的OptionParser不允许此选项。
我会将OptionParser代码放在一个函数中,以便在导入模块时不执行它。
答案 1 :(得分:5)
这对我有用,在底部添加。
if __name__ == '__main__':
parser = optparse.OptionParser()