2016-11-10 130 views
2

我想为我的Flask项目设置Sphinx autodoc。 这是我的项目模式:Flask ImportError中的狮身人面像autodoc:没有模块名为

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 
|   .... 

等等。

在conf.py我已经设置:

sys.path.insert(0, os.path.abspath("../..")) 

我想temp.py的内容添加到我的文档。 这里是mod_ololo.rst内容:

******************************************* 
OLOLO module 
******************************************* 

Ololololo 
====== 

.. automodule:: flask_app.app.temp 
    :members: 

当我单独运行的脚本make html - 狮身人面像车博士的作品,但在我的烧瓶项目的情况下,它不会和我展示了以下错误:

ImportError: No module named 'config' 

其中配置为config.py

回答

1

纯粹是猜测,但config模块,您的狮身人面像生成器未找到可能是您的flask_app文件夹中的config.py模块。您的flask_app/app/temp.py文件中有可能存在import config声明,因此当sphinx尝试运行automodule过程时,该过程在该导入时会失败。

从你的目录结构,它看起来像你的flask_app文件夹不是一个Python包,所以你可能有该文件夹的父文件夹添加,而不是(或除了)到pathconf.py文件:

sys.path.insert(0, os.path.abspath('../../flask_app')) 

而且,你可能不得不改变你的mod_ololo.rst声明automodule不引用flask_app作为一揽子:

.. automodule:: app.temp 

如果你真的打算用flask_app作为一个包,那么你需要一个__init__.py文件夹中,并在项目中import语句应该是绝对的从顶部flask_app包,即:

from flask_app import config 

而非

import config 
+0

谢谢,男人。在'../../flask_app'和'app.temp'上更改sys.path几乎解决了这个问题。现在,它显示读取放置在某些文件夹中的* .csv和* .txt文件时出错,但我会在这段时间对其进行评论,稍后将尝试找到解决方案。 再次感谢 –

相关问题