【问题标题】:Is OptionParser in conflict with Sphinx?OptionParser 是否与 Sphinx 冲突?
【发布时间】:2011-08-02 12:23:21
【问题描述】:

我正在尝试在 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:

【问题讨论】:

标签: python python-sphinx autodoc optionparser


【解决方案1】:

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

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

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

【讨论】:

  • +1; parser.parse_args() 在模块级代码中根本没有任何业务,不仅仅是因为 sphynx 抱怨它。
【解决方案2】:

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

if __name__ == '__main__':

    parser = optparse.OptionParser()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    相关资源
    最近更新 更多