Sphinx Docs未导入Django项目设置



我最近刚刚将一个Django项目转移到一个新的虚拟环境中。该项目运行良好,但我在构建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

非常感谢您的帮助。

发现conf.py需要如下所示:

import sys, os
sys.path.append('/path/to')
from myproject import settings
from django.core.management import setup_environ
setup_environ(settings)

希望这能帮助到别人。

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")

Django 1.7.5项目出现这个问题,我认为这是因为我们做出了一些奇怪的项目布局决定,但我需要使用jwhitlock的答案来解决这个问题:

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

当我进行无用的导入时,它发现了我的自定义Django设置,这些设置是在DJANGO_SETTINGS_MODULE中指定的,但autodoc进程没有找到。我认为这是因为项目所在的文件夹的父文件夹同名,但检查sys.path只会显示"正确"的文件夹,因此导入应该可以工作,但失败了,说找不到我的设置。

最新更新