我试图为我的Flask项目设置Sphinx autodoc。 这是我的项目的架构:
Theorem incr_ext : forall (x y : bin),
bin_to_nat x = bin_to_nat y -> bin_to_nat (incr x) = bin_to_nat (incr y).
等等。
在conf.py中我已设置:
Folder
|--docs
| |--build
| |--source
| conf.py
| index.rst
| mod_ololo.rst
| ....
|--flask_app
| |--celery_worker.py
| |--config.py
| |--run.py
| |--app
| |--__init__.py
| |--temp.py
| |--mod_search
| ....
| |--mod_files
| |--__init__.py
| ....
我正在尝试将 temp.py 的内容添加到我的文档中。 以下是 mod_ololo.rst 的内容:
sys.path.insert(0, os.path.abspath("../.."))
当我为单独的脚本运行*******************************************
OLOLO module
*******************************************
Ololololo
======
.. automodule:: flask_app.app.temp
:members:
时 - Sphinx autodoc可以工作,但是在我的烧瓶项目中它没有并且向我显示以下错误:
make html
其中config为 config.py
答案 0 :(得分:2)
纯粹猜测,但是您的sphinx构建器未找到的config
模块可能是config.py
文件夹中的flask_app
模块。您的import config
文件中可能存在flask_app/app/temp.py
语句,因此当sphinx尝试对其运行automodule
过程时,会导致该导入失败。
从您的目录结构看起来您的flask_app
文件夹不是python包,因此您可能必须将该文件夹而不是(或除此之外)其父文件夹添加到path
中您的conf.py
文件:
sys.path.insert(0, os.path.abspath('../../flask_app'))
另外,您可能需要更改mod_ololo.rst
中的自动模块语句,而不是将flask_app
作为一个包引用:
.. automodule:: app.temp
如果您确实执行打算将flask_app
用作程序包,那么您需要在该文件夹中使用__init__.py
文件,并且项目中的import语句应该是绝对的从顶部flask_app
包中,即:
from flask_app import config
而不是
import config