繁体   English   中英

Sphinx在我的文档中添加了有关NumPy模块的文档

[英]Sphinx adds documentation for NumPy modules to my docs

我想为我的Python代码生成Sphinx文档。 此代码从numpy进行了一些导入。 我在mycode上使用sphinx-apidoc ,然后运行make html 它生成文档,但也包括numpy中用于uniform函数的文档。 如何禁用这些多余的包含物?

这是我的代码:

# encoding: utf-8
"""
This module does blah blah.
"""

from numpy.random import uniform  #WHY IS IT INCLUDED IN SPHINX DOC?!!!!

class UberMegaClass(object):
    """Hell yeah!"""
    def __init__(self, num_of_something):
        print("---")
        self.num_of_something = num_of_something

这是Sphinx处理C ++扩展的一个已知错误。 它们可以不必要地包含在文档中。 有一个半官方的解决方法,建议您用conf.py Mock对象替换这些模块,如下所示:

import sys

class Mock(object):

    __all__ = []

    def __init__(self, *args, **kwargs):
        pass

    def __call__(self, *args, **kwargs):
        return Mock()

    @classmethod
    def __getattr__(cls, name):
        if name in ('__file__', '__path__'):
            return '/dev/null'
        elif name[0] == name[0].upper():
            mockType = type(name, (), {})
            mockType.__module__ = __name__
            return mockType
        else:
            return Mock()

MOCK_MODULES = ['pygtk', 'gtk', 'gobject', 'argparse',
                'numpy', 'numpy.random']
for mod_name in MOCK_MODULES:
    sys.modules[mod_name] = Mock()

解决该问题的一种方法是更改​​您的rst。

 .. automodule:: module

 .. autoclass:: module.UberMegaClass
     :members:
     :undoc-members:
     :show-inheritance:

输出:

This module does blah blah.

class module.UberMegaClass(num_of_something)
    Bases: object

    Hell yeah!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM