【问题标题】:Sphinx Docs not importing Django project settingsSphinx Docs 未导入 Django 项目设置
【发布时间】:2012-07-20 16:07:31
【问题描述】:

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

非常感谢任何帮助。

【问题讨论】:

    标签: django python-sphinx


    【解决方案1】:

    原来 conf.py 需要如下所示:

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

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

    【讨论】:

      【解决方案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")
      

      【讨论】:

        【解决方案3】:

        在 Django 1.7.5 项目中遇到这个问题,我认为这是因为我们做出了一些奇怪的项目布局决定,但我需要一个额外的步骤来使用 jwhitlock 的回答来解决这个问题:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多