ПРЕДУПРЕЖДЕНИЕ 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

Что мне не хватает?

Заранее спасибо!


person Yevgeni Burshtein    schedule 12.09.2019    source источник
comment
Насколько я могу судить, модуля с именем src не существует. Класс Test определен в модуле test (test.py). .. automodule:: test должно работать, с sys.path.insert(0, os.path.abspath('D:/sphynx/scripts/src')) в conf.py.   -  person mzjn    schedule 12.09.2019


Ответы (1)


Нет модуля с именем src. Это просто папка. Класс Test определен в модуле test (test.py), который находится в этой папке.

.. automodule:: test должен работать у вас с sys.path.insert(0, os.path.abspath('D:/sphynx/scripts/src')) в conf.py.

person mzjn    schedule 12.09.2019