2016-11-10 67 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文件時出錯,但我會在這段時間對其進行評論,稍後將嘗試找到解決方案。 再次感謝 –

相關問題