Sphinx Docs不导入Django项目设置

时间:2012-07-20 16:07:32

标签: django python-sphinx

我最近刚刚将一个Django项目转移到一个新的virtualenv。该项目工作正常,但我在构建我的Sphinx文档时遇到问题。

在我的conf.py中我有这个:

import sys, os

sys.path.append('/path/to/myproject')

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

setup_environ(settings)

但是当我使用make html时,我收到此错误:

from myproject import settings
  ImportError: No module named myproject

任何帮助都非常感激。

3 个答案:

答案 0 :(得分:3)

原来conf.py需要看起来像这样:

import sys, os

sys.path.append('/path/to')

from myproject import settings
from django.core.management import setup_environ
setup_environ(settings)

希望这可能有助于某人。

答案 1 :(得分:2)

Django 1.4已弃用setup_environ。这是Django 1.4及更高版本的类似代码:

import sys, os
cwd = os.getcwd()
parent = os.path.dirname(cwd)
sys.path.append(parent)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")

答案 2 :(得分:0)

Django 1.7.5项目存在这个问题,我认为这取决于我们做出的一些奇怪的项目布局决策,但我需要一个额外的步骤来解决这个问题,使用jwhitlock的答案:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
from django.conf import settings

当我执行无用的导入时,它找到了我在DJANGO_SETTINGS_MODULE中指定但在autodoc进程中找不到的自定义Django设置。我认为这是因为该项目位于其父级具有相同名称的文件夹中,但检查sys.path仅显示“正确”文件夹,因此导入应该可以正常工作,但会说它无法找到我的设置。 / p>