2

我最近刚刚将一个 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

非常感谢任何帮助。

4

3 回答 3

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)

希望这可能对某人有所帮助。

于 2012-07-20T17:21:10.620 回答
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")
于 2014-07-28T21:31:29.580 回答
0

在 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仅显示“正确”文件夹,因此导入应该可以工作,但会说它找不到我的设置。

于 2015-05-28T19:50:57.397 回答