如何为Django项目构建sphinx文档

2024-10-05 14:29:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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            |
|        ...
|     ...                                    |
+--------------------------------------------+

有什么想法吗?一个conf.py文件的examle将非常有用。谢谢您。

编辑

我的项目名是saassapp,我试图为其生成文档的模块名为studyview。


Tags: 文件项目django文档pycomhttpsettings
3条回答

在conf.py中添加以下内容,就不需要每次都设置DJANGO_SETTINGS_模块:

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)

对于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

让我解释每一行:

  1. 我使用了一个相对路径(向上两个目录),但是如果您愿意,可以继续并放置一个绝对路径
  2. 我的项目名是dataentry,文件夹中有settings.py文件;将名称(dataentry)更改为项目名

Django 1.7中引入的迁移特性阻止了以前的答案在新版本上工作。相反,您将不得不进行手动设置。类似于前面所有的回答,您首先必须确保Django可以找到您的设置,然后调用django.setup(),它将加载设置并设置您的模型。将此添加到Sphinx项目的conf.py中:

os.environ['DJANGO_SETTINGS_MODULE'] = 'projectname.settings'
import django
django.setup()

相关问题 更多 >