Sphinx“警告:autodoc:导入类失败”错误

时间:2019-09-12 10:07:43

标签: python python-sphinx autodoc

我正在尝试使用Sphinx为某些python类生成文档 我只有一个Python脚本和一个类(带有一些文档)

我的python脚本在这里:D:\ sphynx \ scripts \ src \ test.py

不确定这是否正确,但这是我的test.rst

.. automodule:: src
Base Class
----------
.. autoclass:: Test
   :members:

modules.rst

scripts
=======

.. toctree::
   :maxdepth: 4

   test
class Test(object):
    """ test docs 
    """
    def __init__(self, **kwargs):
        """Initialize a Test object.
        """
        self._params = kwargs
    def my_method(self, param):
        """ method docs here
        Args:
            param: Input param.
        Returns:
            Test: Returns self.
        """
        return self

index.rst

.. Test documentation master file, created by
   sphinx-quickstart on Mon Sep  9 11:45:25 2019.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

Welcome to Pets's documentation!
================================

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

   modules

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

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

conf.py

import os
import sys
sys.path.insert(0, os.path.abspath('D:/sphynx/scripts'))

extensions = ['sphinx.ext.autodoc']

一旦我运行“ make html”命令,就会出现此错误:

D:\sphynx>make html
...
reading sources... [100%] test
WARNING: autodoc: failed to import class 'Test' from module 'src'; the following exception was raised:
Traceback (most recent call last):
  File "c:\anaconda3\lib\site-packages\sphinx\util\inspect.py", line 230, in safe_getattr
    return getattr(obj, name, *defargs)
AttributeError: module 'src' has no attribute 'Test'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\anaconda3\lib\site-packages\sphinx\ext\autodoc\importer.py", line 71, in import_object
    obj = attrgetter(obj, attrname)
  File "c:\anaconda3\lib\site-packages\sphinx\ext\autodoc\__init__.py", line 226, in get_attr
    return autodoc_attrgetter(self.env.app, obj, name, *defargs)
  File "c:\anaconda3\lib\site-packages\sphinx\ext\autodoc\__init__.py", line 1501, in autodoc_attrgetter
    return safe_getattr(obj, name, *defargs)
  File "c:\anaconda3\lib\site-packages\sphinx\util\inspect.py", line 246, in safe_getattr
    raise AttributeError(name)
AttributeError: Test

looking for now-outdated files... none found

我想念什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

没有名为src的模块。它只是一个文件夹。 Test类是在该文件夹中的test模块(test.py)中定义的。

.. automodule:: test应该适合您,并且conf.py中有sys.path.insert(0, os.path.abspath('D:/sphynx/scripts/src'))