我尝试使用带有Sphinx和autodoc扩展名的napoleon为我的Django项目自动生成文档。
使用sphinx-quickstart
我创建了以下结构:
MyDjangoProject
├── __init__.py
├── config
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── docs
│ ├── Makefile
│ ├── build
│ └── source
│ ├── _static
│ ├── _templates
│ ├── conf.py
│ └── index.rst
├── myfirstapp
│ ├── __init__.py
│ ├── models.py
│ └── views.py
├── mysecondapp
│ ├── __init__.py
│ ├── models.py
│ └── views.py
...
我已定制docs/source/conf.py
以反映我的项目结构。
import os
import sys
proj_folder = os.path.realpath(
os.path.join(os.path.dirname(__file__), '../..'))
sys.path.append(proj_folder)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
import django
django.setup()
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode']
# The rest of the default configuration...
然后我转到项目的根目录并运行sphinx-apidoc -f -o docs/source .
。这会将每个模块的.rst
文件添加到docs/source
。
最后,我转到MyDjangoProject
并运行make html
。这失败了,每个模块都说错误
Traceback (most recent call last):
File "/Users/Oskar/git/MyDjangoProject/venv/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 551, in import_object
__import__(self.modname)
ImportError: No module named MyDjangoProject.myfirstapp
我做错了什么?
答案 0 :(得分:2)
由于您已将MyDjangoProject
添加到python路径,因此应将myfirstapp
导入myfirstapp
而不是MyDjangoProject.myfirstapp
。