我使用docstring来记录python代码,使用sphinx-autodoc来生成apidoc HTML。我的包的结构如下:mainpackage.subpackage.module,我希望apidocs链接到mainpackage.subpackage.Class模块中的类,而不是mainpackage.subpackage.module.Class。例如,我的问题来自于scikit多重学习项目:我在skmultilearn.base.base中有一个MLClassifierBase类,但是我在skmultilearn.base中的__init__.py中导入它,我希望斯芬克斯生成的apidocs只使用这个类作为skmultilearn.base.MLClassifierBase,而不是像现在这样使用skmultilearn.base.base.MLClassifierBase。有人能帮忙吗?
我已经试过了
add_module_names = False中设置conf.py中的Sphinx apidoc -不要打印到包和模块的完整路径""".. automodule:: base"""添加到skmultilearn/base/__init__.py__all__ = ['MLClassifierBase']添加到skmultilearn/base/__init__.py.. autoclass:: base.MLClassifierBase添加到类文档中我仍然有一个基:从MLClassifierBase派生的每个类中都有MLClassifierBase。我该怎么改变这个?
发布于 2017-02-14 14:32:26
我找到了一个解决办法:
"""
The :mod:`skmultilearn.base` module implements base
classifier classes for scikit-multilearn's multi-label classification.
"""
from .base import MLClassifierBase
from .problem_transformation import ProblemTransformationBase
__all__ = ["MLClassifierBase",
"ProblemTransformationBase"]它为base.ProblemTransformationBase而不是base.base.ProblemTransformationBase生成文档。您需要在您的__init__.py中将这三个元素组合在一起
:mod:的定义https://stackoverflow.com/questions/38034409
复制相似问题