And*_*jos 5 python python-sphinx
我正在尝试正确构建我的Sphinx文档并且交叉引用(包括来自继承关系的那些)正常工作.
在我的项目中,我有一个情况,在下面的例子中描述,为了方便起见,我在这个github repo上进行了复制:
$ tree .
.
??? a
? ??? b
? ? ??? __init__.py
? ??? __init__.py
??? conf.py
??? index.rst
??? README.md
Run Code Online (Sandbox Code Playgroud)
在a.b.__init__,我宣布课A和B.B继承自A.在a.__init__,我导入A和B喜欢:from .b import A, B.我在实际项目中执行此操作的原因是减少模块上的导入路径,同时将特定类的实现保存在单独的文件中.
然后,在我的第一个文件,我车博士模块a用.. automodule:: a.因为a.b它只是一个辅助模块,所以我不自动调整它,因为我不想重复引用相同的类,也不要让用户混淆他们应该做的事情.我也设定show-inheritance期待a.B将有一个反向链接a.A.
如果我试图以非常挑剔的方式构建sphinx,我将收到以下警告:
WARNING: py:class reference target not found: a.b.A
Run Code Online (Sandbox Code Playgroud)
如果我查看生成的类文档B,那么我验证它没有与类正确链接A,这只是确认上面的警告.
问题:我该如何解决这个问题?
Sphinx使用__module__属性的值来确定定义类/函数/方法的模块的名称(请参阅https://docs.python.org/2/reference/datamodel.html#the-standard-type - 层次结构).有时这不是您在文档中想要的.
该属性是可写的.您可以通过在/ __ init__.py中添加此行来解决此问题:
A.__module__ = "a"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
396 次 |
| 最近记录: |