为什么Sphinx自动模块不显示任何模块成员?

时间:2019-03-07 19:05:57

标签: python module python-sphinx autodoc

我开始研究python模块,想记录代码“就地”。因此,我使用sphinx-quickstart在一个子目录中设置了sphinx,从而导致此目录结构(仅显示我编辑的文件):

  • myproject /
    • __ init __。py
    • main.py
  • docs /(sphinx目录)
    • 构建/
    • 来源/
      • conf.py
      • index.rst
  • setup.py

我的index.rst包含:

Welcome to My Module's documentation!
=====================================

.. toctree::
   :maxdepth: 2
   :caption: Contents:

.. automodule:: myproject
    :members:


Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

我跑步时

make html

我得到了一个缺少自动模块部分的文档,尽管我在main.py中记录了每个类和每个方法,像这样:

class Thing:
    """This class represents Things

    :param color: how the thing should look like
    """

    def __init__(self, color):
        pass

    def color(self):
        """Tells you the color of the thing.

        :returns: Color string
        :rtype: str or unicode
        """
        pass

Sys.path也已正确设置,因为制作时会引发错误

sys.path.insert(0, os.path.abspath('../../'))

如果相关,我还包括setup.py:

from setuptools import setup

setup(name='My Module',
      version='0.1',
      description='Internet of Things',
      url='https://example.com',
      author='Master Yoda',
      author_email='yoda@example.com',
      license='GPLv3',
      packages=['mymodule'],
      zip_safe=False)

要使自动文档生效,我需要更改什么?

2 个答案:

答案 0 :(得分:3)

如果您的类导入到 __init__.py 中,您可能还需要 :imported-members:,如下所示:

.. automodule:: myproject
   :imported-members:
   :members:
   :undoc-members:
   :show-inheritance:

答案 1 :(得分:0)

main模块位于myproject软件包中。为了记录main,您需要满足以下条件:

.. automodule:: myproject.main
   :members: