我正在尝试使用Sphinx(1.5.3)为Python存储库创建文档,具有以下结构:
main_repo/
├── docs
├── src
| ├── subrepo1
| ├── subrepo2
| └── subrepo3
└── tests
Python代码在src
内构建为三个不同的Python包。此处subrepo1
只是main_repo
的一部分,但subrepo2
和subrepo3
是Git子模块,链接到独立的Git回购。 Sphinx文件位于docs
文件夹中:
docs
├── _build
├── conf.py
├── index.rst
├── make.bat
├── Makefile
├── _static
└── _templates
在conf.py
我用过
sys.path.insert(0, os.path.abspath(os.path.join('path/to/src')))
将src
目录的完整路径添加到sys.path
,并在index.rst
中添加以下指令以生成subrepo1
包中一个类的文档:
.. toctree::
:maxdepth: 2
:caption: Contents:
.. automodule:: subrepo1.module
.. autoclass:: Class1
:members:
此处module
是包module.py
中的模块subrepo1
的名称,而Class1
是module
内的类。
运行make html
时出现以下错误:
/path/to/src/docs/index.rst:13: WARNING: autodoc: failed to import module u'subrepo1.module'; the module executes module level statement and it might call sys.exit().
/path/to/src/docs/index.rst:15: WARNING: don't know which module to import for autodocumenting u'Class1' (try placing a "module" or "currentmodule" directive in the document, or giving an explicit module name)
我想在main_repo
内的这三个子目录中为所有子模块和子包中的所有类生成文档,包括类构造函数和所有“公共”方法和属性。在index.rst
中执行此操作的指令是什么?