我正在使用sphinx为我正在创建的包创建一些文档。文档生成正确,但它也为导入创建文档。是否可以将自动模块配置为仅为指定模块中存在的功能(而不是导入的模块)创建文档?
修改
仅在执行以下导入时才会出现此问题:from pylab import *
在我的第一个文件中:
.. automodule:: name.subname
:members:
mzjn指出已经提出这个问题:Documenting files with "from x import *"
答案是改变pylab的导入方式:
import pylab
from pylab import *
for k,v in pylab.__dict__.iteritems():
if hasattr(v,'__module__'):
if v.__module__ is None:
locals()[k].__module__ = 'pylab'
答案 0 :(得分:2)
对于模块,
__all__
在寻找成员时会受到尊重;该 成员的顺序也是__all__
中的顺序。
__all__
是模块声明它实际想要成为其公共名称空间的好方法。您还可以在Sphinx配置中以:members:
之后的逗号分隔成员列表,但__all__
对导入和其他工具也很有用。