Python Sphinx autodoc可以';找不到模块

Python Sphinx autodoc可以';找不到模块,python,python-sphinx,autodoc,Python,Python Sphinx,Autodoc,我是狮身人面像新手,需要帮助我找出为什么会出现以下错误: WARNING: autodoc: failed to import module 'employe_dao' from module 'models'; the following exception was raised: No module named 'models' 我的项目结构是: |--master_project |--sub_project |--docs |--build

我是狮身人面像新手,需要帮助我找出为什么会出现以下错误:

WARNING: autodoc: failed to import module 'employe_dao' from module 'models'; the following exception was raised:
No module named 'models'
我的项目结构是:

|--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
        ...
这是来自
index.rst

...

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

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

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

...

* :ref:`modindex`

我已经添加了
sys.path.insert(0,os.path.abspath('./sub_project'))
并按照中的建议在
conf.py
中取消注释
import os,import sys

@Ryandellan建议将
sys.path.insert(0,os.path.abspath('..'))
添加到
config.py
修复了
index.rst

我在另一个stackoverflow线程中建议将
extensions=['sphinx.ext.autodoc']
添加到
config.py


关于我的其他错误操作有什么建议吗?

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


要获得更一般的答案,请考虑如果要在Python CLI中成功导入模块,需要位于哪个目录中。该目录是您希望Sphinx在您的路径中包含的目录。

立即获取此错误
警告:autodoc:无法从模块“src”导入模块“Optimizer”;引发了以下异常:没有名为“Optimizer\u engine”的模块
。知道是什么引起的吗?是不是src文件夹下的
optimizer\u engine.py
?如果是这样,告诉autodoc如何查找它的正确方法是
。。automodule::Optimizer\u engine
我以前有一个名为的文件,但将其重构为
Optimizer.py
之后就没有了。我检查了src.rst,它不包含对
optimizer\u引擎的引用
Aah哎呀,我有点误读了错误。
optimizer.py
正在尝试导入
optimizer\u引擎
还是什么?也试试这个,进入你的
src
文件夹,在命令行中打开
python
,然后做一个
import optimizer
,看看它是否会抛出错误。嗯,你的第三方库是否安装在系统级,比如说安装了pip?如果是这样的话,你不需要什么特别的东西,它们应该可以工作。确保您没有忘记激活一个virtualenv(如果您有),然后再次尝试在pythonshell中执行
importmysql
。如果您的库是以不同的方式安装的,那么您可能需要将它们添加到路径中。