【问题标题】:Setting up Django settings for sphinx (documentation)为 sphinx 设置 Django 设置(文档)
【发布时间】:2012-03-23 20:41:34
【问题描述】:

我有一个 Django 应用程序,我正在尝试为其设置文档。目录结构如下:

- doc
- project
| - manage.py

我已经设置了路径,以便 Sphinx 可以看到东西,但是当我尝试使用 autodoc 时,我在 settings.py 中设置的一些设置不可用。这是我设置环境的方式,我做错了什么?

from django.core.management import setup_environ
from project import settings

setup_environ(settings, 'project.settings')

【问题讨论】:

  • 是否记录了某些设置而没有记录其他设置?您能否向我们展示 settings.py 文件的(相关部分)?
  • 您究竟在哪里设置该环境?如果它在您的 Sphinx 的 conf.py 中,好的。如果它们在另一个文件中(例如 manage.py),sphinx 可能没有读取它们。
  • @brian-hicks,你有关于环境设置代码的更新吗?
  • @ReinoutvanRees,它位于conf.py。我最终在命令中指定了DJANGO_SETTINGS_MODULE 来构建文档。
  • 好的。我没有一个确定的答案,但我确实添加了一个我能想出的任何可能的原因。还有一个解决方案,如果您在进一步的项目中需要它。

标签: python django python-sphinx


【解决方案1】:

我只能想到为什么 Sphinx 的 conf.py 中的 setup_environ() 调用不起作用的两个原因:

  • 它没有足够早地发挥它的魔力。您导入其他已经需要设置的东西之前该行。

  • settings.py 本身导入过多。不过,如果是这种情况,那就太奇怪了。

请注意,setup_environ() 已弃用。不过,在 Django 1.6 之前它不会被删除。

另一种选择是在conf.py 脚本的顶部使用os.environ。保证你准时到那里:-)

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'

【讨论】:

  • 我通过在指定DJANGO_SETTINGS_MODULE 的同时运行命令来完成此操作。这也可以。
猜你喜欢
  • 2020-03-18
  • 2013-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-30
  • 2021-04-03
  • 1970-01-01
  • 2013-10-16
相关资源
最近更新 更多