我有这样的项目结构:
package/
__init__.py
module.py
__init__.py
包含:
from .module import Class
module.py
包含:
class Class:
pass
使用 sphinx-apidoc -o package/docs/ package/
和 sphinx-build package/docs/ package/docs/_build
,Class
的文档如下所示:
我想要的输出结果是:class package.module.Class
Bases: object
或者更好的方式是不带包名:class package.Class
Bases: object
用户不需要知道类定义在哪个文件中;如果不是混淆,这些信息完全无关紧要。由于class Class
Bases: object
__init__.py
直接将 Class
导入到包的命名空间中,用户将以 from package import Class
的形式导入此类,而不是以 from package.module import Class
的形式导入,因此我希望文档能够反映出这一点。有没有办法让 Sphinx 输出相对于包的命名空间的路径?
__init__.py
中导入某些内容,则sphinx-apidoc将无法识别它们。 - mzjn__module__
值吗?例如Class.__module__ ='package'
。这也会产生其他副作用,但总的来说,我猜它可能会起作用。 - zvone