【问题标题】:Sphinx "WARNING: autodoc: failed to import class" error狮身人面像“警告:autodoc:导入类失败”错误
【发布时间】:2019-09-12 10:07:43
【问题描述】:

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

我错过了什么?

提前致谢!

【问题讨论】:

  • 据我所知,没有名为src 的模块。 Test 类在 test 模块 (test.py) 中定义。 .. automodule:: test 应该可以工作,sys.path.insert(0, os.path.abspath('D:/sphynx/scripts/src')) 在 conf.py 中。

标签: python python-sphinx autodoc


【解决方案1】:

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

.. automodule:: test 应该适合你,sys.path.insert(0, os.path.abspath('D:/sphynx/scripts/src')) 在 conf.py 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    相关资源
    最近更新 更多