Sphinx自动模块文档也记录导入的模块
我正在使用sphinx为我创建的一个包生成文档。文档生成得很正常,但它也为导入的内容生成了文档。有没有办法设置automodule,只为指定模块中的函数生成文档,而不包括那些被导入的模块呢?
编辑
这种情况只发生在我使用以下导入方式时:from pylab import *
在我的rst文件中,我写了:
.. automodule:: name.subname
:members:
mzjn指出这个问题已经被问过了:使用"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'
1 个回答
3
对于模块来说,当我们查找模块里的成员时,
__all__
会被遵循;而且成员的顺序也会和__all__
中的顺序一致。
__all__
是一个很好的方式,让模块声明它希望公开的内容。你也可以在 Sphinx 配置中,在 :members:
后面列出一个用逗号分隔的成员列表,但 __all__
对于导入和其他工具也很有用。