2015-12-22 11 views
10

私は選択されたモジュールに対してのみautodocを使用しようとしています。autodocでいくつかのモジュールを無視する

.. automodule:: some.specific.module 
    :members: 

ファイルが正しく生成されています。残念なことに、autodocは他のファイルも解析しようとし続けます(インポートエラーのため失敗します)。私はいくつかのモジュールを模擬することができますが、私はより良い解決策を望んでいます - まず、スフィンクスがそれらを見るのを止めてください。

要求されたモジュールのみがロードされていることを確認するにはどうすればよいですか(たとえば、test.other.module)。

+0

http://stackoverflow.com/a/21449475/344286あなたが望むことはできますか?もしそうなら、私は答えとして投稿します –

答えて

0

を設定しているため、これらの「その他のファイルは、」インポートされます。いくつかのツールはAPIドキュメンテーションソース用の足場を生成するので、それらのファイルは配置されたまま残され、不正なインポートを引き起こしました。

これが発見された方法:

  • スフィンクスが正常に起動されませんデバッグログの複数のレベルを持っている
  • あなたは
[autodoc] /path/to/the/doc.rst:158: input: 
.. automodule:: app.module.name 
    :members: 
のようなデバッグ出力によって輸入をトリガーたラインを確認でき
  • 0

    私はこれを実現するための3つの原因見ています:スフィンクスのキャッシュがトラブルを引き起こしている、とmake clean

  • あなたのモジュールがパッケージ内に位置しており、パッケージの__init__.pyファイルされている問題を解決するだろう

    • を これらの "他のファイル"をインポートしています(または、より正確には をインポートしようとしています)。
    • それは愚かな間違いであることが判明したので、あなたはPYTHONSTARTUP