2012-07-16 51 views
19

當使用獅身人面像的automodule(http://sphinx.pocoo.org/ext/autodoc.html#directive-automodule),獅身人面像,使用automodule找到子模塊

我只是在.rst文件中寫:

.. automodule:: my_module 
    :members: 

它證明my_module很好,但它沒有找到像my_module.inner_module0和my_module.inner_module1這樣的內部模塊。除了__all__變量之外,還有什麼需要在__init__.py文件中指定?

此外,我知道sphinx-apidoc。但是這個命令文件太多了(公開了每個功能/文件夾,包括無證文件)。

回答

25

聽起來好像你想給automodule指令一個包名,並讓它遞歸到目錄並記錄每個Python模塊。那還不支持。您將需要指定完整的虛擬模塊名稱爲您要文檔的每個模塊。

例如,給出以下目錄結構(來自Python文檔)。您不能指定.. automodule:: sound.formats並使其記錄目錄中的所有模塊。你將不得不爲每個模塊automodule命令:.. automodule:: sound.formats.waveread.. automodule:: sound.formats.wavewrite

sound/       Top-level package 
     __init__.py    Initialize the sound package 
     formats/     Subpackage for file format conversions 
       __init__.py 
       wavread.py 
       wavwrite.py 
       aiffread.py 
       aiffwrite.py 
       auread.py 
       auwrite.py 
       ... 
     effects/     Subpackage for sound effects 
       __init__.py 
       echo.py 
       surround.py 
       reverse.py 
       ... 
1

在我看來,那using the :imported-members: option(非直接的聯繫,不要使用搜索)現在應該是可能的,如果__init__.py導入這些子模塊。

但是,我個人無法做到這一點(尚未)。

編輯:可能是known bug

+0

我不認爲這是通過使用'imported-members'來解決的。恕我直言,@ devin_s高度回覆正確的答案(或至少在正確的軌道上)。自2013年8月以來,提問者並未積極參與Stack Overflow,所以我們似乎不太可能會從他那裏得到確認。 – mzjn 2017-03-27 11:13:52

+0

確實...重讀的問題,似乎是我誤解了它,通過我自己的任務透視來解釋。對不起,噪音。 – 2017-03-30 11:11:48