如何修复 Sphinx“警告:自动模块签名无效”错误

Bio*_*tte 5 python python-sphinx autodoc

我目前正在记录一些代码,并不断收到以下警告/错误(这是多个警告/错误的一个示例):

警告:自动模块('components.component-1.orc_component_1.app)的签名无效警告:不知道要导入哪个模块来自动记录'components.component-1.orc_component_1.app'(尝试放置“模块”或“ currentmodule”文档中的指令,或给出明确的模块名称)

我尝试过改变点“。” 在文件中使用正斜杠“/”来设置组件的路径,但没有任何运气。

下面我勾勒出该项目的简化表示以及我如何构建 sphinx 文档:

.
|-- README.rst
|-- components
|   |-- component-1
|   |   |-- README.rst
|   |   |-- orc_component_1
|   |   |   |-- app.py
|   |   |   |-- services.py
|   |   |   `-- utils.py
|   |-- component-2
|   |   |-- README.rst
|   |   |-- orc_component_2
|   |   |   |-- app.py
|   |   |   |-- services.py
|   |   |   `-- utils.py
|-- docs
|   |-- Makefile
|   |-- build
|   |   |-- doctrees
|   |   `-- html
|   |-- make.bat
|   `-- source
|       |-- _static
|       |-- _templates
|       |-- components.rst
|       |-- conf.py
|       |-- index.rst
|       |-- readme_components.rst

... and so on
Run Code Online (Sandbox Code Playgroud)

在conf.py中,sys.path设置为:

import os
import sys
sys.path.insert(0, os.path.abspath('../..'))
Run Code Online (Sandbox Code Playgroud)

索引.rst:

Welcome!
========


.. toctree::
   :maxdepth: 2
   :caption: Modules:


components
readme-components


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


* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Run Code Online (Sandbox Code Playgroud)

自述文件组件:

.. include:: ../../README.rst

.. include:: ../../component-1/README.rst

.. include:: ../../component-2/README.rst
Run Code Online (Sandbox Code Playgroud)

组件(仅是我们想要记录的组件)

component-1
===========


.. automodule:: components.component-1.orc_component_1.app
   :members:


.. automodule:: components.component-1.orc_component_1.services
   :members:


.. automodule:: components.component-1.orc_component_1.utils
   :members:


component-2
===========


.. and so on
Run Code Online (Sandbox Code Playgroud)

我认为这与子目录名称中的“-”有关,但不确定。由于多人正在工作并使用代码,我无法更改目录名称。

您知道是否有办法解决此错误并仍然记录脚本?或者是否可以更改 sphinx 中的某些设置来适应这种情况?

谢谢,

最好的祝愿,比吉特