9

HTMLドキュメントを作成したいかなり大きなコードベースを継承しました。Pythonで記述されているため、コードのユーザーはSphinxで作成されたPythonドキュメントのデザインと機能に慣れているため、Sphinxを使用することにしました。このコマンドを使用して、ファイルsphinx-apidocを自動的に作成しました。Sphinxがコードを見つけられるように.rst、モジュールパスをにインポートしました。sys.path

ここまでは順調ですね。ただし、コマンドを使用してHTMLを作成しようとすると、make html多くのトレースバックがポップアップし、コードベースのいくつかの例が実行されているように見えます。その理由は何であり、どうすればそれが起こらないようにすることができますか?

4

2 に答える 2

13

autodocを使用する場合、Sphinxは文書化されたモジュールをインポートするため、すべてのモジュールレベルのコードが実行されます。これは、「makehtml」を実行するたびに発生します。その意味で、Sphinxはコードを「実行」します。

エラーを解消するために、コードを少し異なる方法で編成する必要がある場合があります(モジュールレベルのコードを関数に移動します)。発生する可能性のある例については、この質問を参照してください。

これは私の推測ですが、それがすべてではないかもしれません。追加情報なしでこれ以上言うのは難しいです。

于 2012-09-13T18:00:46.780 に答える
3
def main():

    print('hello world')

if __name__ == '__main__':

    main()

このようにすると、コードは実行されません。

于 2017-10-13T22:13:15.480 に答える