13

我正在尝试在 Sphinx 中为我的项目编写文档,每当 Sphinx 在我的模块中遇到 OptionParser 时,它都会给我:

sphinx-build:错误:没有这样的选项:-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:
4

2 回答 2

19

这是我认为会发生的事情:

当 Sphinx 运行时,autodoc 会导入您的模块并执行模块中的顶级代码。创建了一个 OptionParser 实例,它处理传递给 sphinx-build 的命令行参数和选项,其中之一是-b。您的 OptionParser 不允许此选项。

我会将 OptionParser 代码放在一个函数中,以便在导入模块时不会执行它。

于 2011-08-04T18:36:37.857 回答
5

这对我有用,在底部添加。

if __name__ == '__main__':

    parser = optparse.OptionParser()
于 2012-07-01T05:26:44.210 回答