Sphinx autmodule还记录了导入的模块

时间:2014-08-07 16:00:49

标签: python python-sphinx

我正在使用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'

1 个答案:

答案 0 :(得分:2)

  

对于模块,__all__在寻找成员时会受到尊重;该   成员的顺序也是__all__中的顺序。

__all__是模块声明它实际想要成为其公共名称空间的好方法。您还可以在Sphinx配置中以:members:之后的逗号分隔成员列表,但__all__对导入和其他工具也很有用。