如何为django项目构建sphinx文档

mik*_*725 15 python django documentation documentation-generation python-sphinx

我有一个django项目,我在docstrings中使用reST来记录以下内容:

  1. 在IDE中帮助diagloags
  2. 稍后使用Sphinx构建HTML文档

我的文档在IDE(PyCharm)中正确显示,但我无法配置Sphinx为我生成HTML文档.

这是我的项目的结构

+--------------------------------------------+
|  /saassapp         # django project path   |
|     /docs          # dir for sphinx        |
|        conf.py     # sphinx config file    |
|        ...                                 |
|     settings.py    # django settings       |
|     /studyview     # django app            |
|        ...
|     ...                                    |
+--------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?对conf.py文件的检查非常有用.谢谢.

编辑

我的项目名称是saassapp,我试图制作文档的模块叫做studyview.

Sim*_*mon 17

Django 1.7中引入的迁移功能可以防止以前的答案适用于较新的版本.相反,您将不得不进行手动设置.类似于之前的所有答案,您首先必须确保Django可以找到您的设置,然后调用django.setup()哪个将加载设置并设置您的模型.将此添加到您的Sphinx项目的conf.py中:

os.environ['DJANGO_SETTINGS_MODULE'] = 'projectname.settings'
import django
django.setup()
Run Code Online (Sandbox Code Playgroud)


Mik*_*yan 14

将以下内容添加到conf.py中,每次都不需要设置DJANGO_SETTINGS_MODULE:

import sys, os

sys.path.append('/path/to/your/project') # The directory that contains settings.py

# Set up the Django settings/environment
from django.core.management import setup_environ
from myproject import settings

setup_environ(settings)
Run Code Online (Sandbox Code Playgroud)


Wil*_*ill 12

使用Django 1.6,我不能使用@MikeRyan的答案,因为from django.core.management import setup_environ已被弃用.相反,我去了我的conf.py文件并添加了以下内容:

import sys
import os

sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'dataentry.settings'
from django.conf import settings
Run Code Online (Sandbox Code Playgroud)

让我解释一下:

  1. 我使用了一个相对路径(两个目录),但如果你愿意,你可以继续前进并设置一个绝对路径
  2. 我的项目名称是dataentry,并且settings.py文件位于该文件夹中; 将名称(dataentry)更改为项目名称

  • thanx更新.我会改变接受你的答案以保持最新状态. (2认同)