如何防止狮身人面像显示我班级的完整路径?

Ara*_*Fey 8 python documentation python-sphinx sphinx-apidoc

我有一个这样的项目结构:

package/
    __init__.py
    module.py
Run Code Online (Sandbox Code Playgroud)

__init__.py 包含:

from .module import Class
Run Code Online (Sandbox Code Playgroud)

module.py 包含:

class Class:
    pass
Run Code Online (Sandbox Code Playgroud)

使用sphinx-apidoc -o package/docs/ package/sphinx-build package/docs/ package/docs/_build的文档Class如下所示:

package.module。

     基础:对象

我想改成以下输出:

包。

     基础:对象

或者,甚至更好,没有包名称:

     基础:对象

用户不必知道在哪个文件中定义了类。如果不混淆,这些信息是完全不相关的。由于__init__.pyClass直接导入到包的名称空间中,因此用户会将此类导入为from package import Class,而不是from package.module import Class,我希望文档能够反映出来。

有没有一种方法可以让狮身人面像输出相对于包名称空间的路径?

小智 5

尝试添加add_module_names = Falseconf.py


小智 5

虽然添加add_module_names = False(参考这个答案)使 Sphinx 呈现package.module.Class为,但如果您想呈现为(即,将类记录为命名空间的一部分),Class它并没有帮助。package.module.Classpackage.Classpackage

如果您希望 Sphinx 记录package.module.class为,请在包package.Class中包含以下行(请参阅答案):__init__.py

# This lets you use package.module.Class as package.Class in your code.
from .module import Class

# This lets Sphinx know you want to document package.module.Class as package.Class.
__all__ = ['Class']
Run Code Online (Sandbox Code Playgroud)