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に渡されたコマンドライン引数とオプションが処理されます。そのうちの1つは-bです。OptionParserはこのオプションを許可していません。

OptionParserコードを関数に入れて、モジュールのインポート時に実行されないようにします。

于 2011-08-04T18:36:37.857 に答える
5

これは私にとってはうまくいきました。これを一番下に追加してください。

if __name__ == '__main__':

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