Sphinx autodoc找不到模块

Ada*_*dam 4 python python-sphinx autodoc

我是 sphinx 的新手,需要帮助找出为什么出现以下错误:

WARNING: autodoc: failed to import module 'employe_dao' from module 'models'; the following exception was raised:
No module named 'models'
Run Code Online (Sandbox Code Playgroud)

我的项目结构是:

|--master_project
   |--sub_project
      |--docs
        |--build
        |--conf.py
        |--index.rst
        |--Makefile
        |--models.rst
        |--src.models.rst
        |--src.rst
      |--src
        |--models
          |--employee.py
          ...
        |--__init__.py
        |--data_extractor.py
        |--optimiser.py
    enter code here
        ...
Run Code Online (Sandbox Code Playgroud)

这是来自的片段index.rst

...

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

.. automodule::src
   :members:
   :undoc-members:
   :show-inheritance:

.. automodule::models
   :members:
   :undoc-members:
   :show-inheritance:

...

* :ref:`modindex`

Run Code Online (Sandbox Code Playgroud)

我已按照 Sphinx 中的建议添加sys.path.insert(0, os.path.abspath('./sub_project'))并取消注释: autodoc can`t import moduleimport os, import sysconf.py

sphinx-build 失败 - autodoc 无法导入/查找模块@ryandillan 建议添加sys.path.insert(0, os.path.abspath('..'))config.py修复我的404“索引未找到model index”错误index.rst

我已经按照另一个 stackoverflow 线程中的推荐extensions = ['sphinx.ext.autodoc']添加了。config.py

关于我还做错了什么有什么建议吗?

Amm*_*kar 5

根据您的目录结构,要添加到的目录sys.path应该是../src

import module对于更一般的答案,请考虑如果您想在 Python CLI 中成功,您需要位于哪个目录中。该目录就是您希望 Sphinx 在您的路径中包含的目录。

  • 啊哎呀,我有点误读了这个错误。`optimiser.py` 是否试图导入 `optimiser_engine` 或者其他东西?也试试这个,进入你的“src”文件夹,在命令行中打开“python”并执行“import optimiser”,看看它是否抛出错误。 (2认同)