构建Sphinx文档时未定义DJANGO_SETTINGS_MODULE

时间:2016-03-25 21:44:08

标签: python django python-sphinx

我跟随this tutorial以生成我的Django项目的文档。

我已将sys.path.append(os.path.join(os.path.dirname(__name__), '..'))添加到文档目录中的conf.py文件中。

但是运行make html会一直给我这样的错误:

  

NotperlyConfigured:请求设置LOGGING_CONFIG,但未配置设置。您必须先定义环境变量DJANGO_SETTINGS_MODULE或在访问设置之前调用settings.configure()。

我的项目运行正常,所以我不确定我应该拨打settings.configure()的位置?

1 个答案:

答案 0 :(得分:6)

目录结构

基于具有以下目录结构的vanilla安装,这里应该是有效的步骤。只要├── docs │   ├── Makefile │   ├── build │   └── source │   ├── _static │   ├── _templates │   ├── conf.py │   └── index.rst └── myproj ├── anapp │   ├── __init__.py │   ├── admin.py │   ├── apps.py │   ├── migrations │   │   └── __init__.py │   ├── models.py │   ├── tests.py │   └── views.py ├── manage.py └── myproj ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py 中的路径设置正确,目录结构可能不同。

conf.py

Sphinx配置

autodoc需要一些设置,以便# If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.join(os.path.abspath('.'), '../../myproj')) # <•• 1 os.environ['DJANGO_SETTINGS_MODULE'] = 'myproj.settings' # <•• 2 import django django.setup() # <•• 3 能够引导Django应用程序:

manage.py

1⇒将Django项目目录(具有autodoc的目录)附加到Python路径,这是2和.rst指令解析dev指令所必需的。 1}}文件。

2⇒使用设置模块的位置设置env变量。此示例基于vanilla django-admin设置。如果您使用更复杂的设置结构(例如stagingproductionmyproj.settings.dev设置从某些基本设置延伸),只需更新路径,例如$ make html

3⇒最后调用django.setup()是填充Django应用程序注册表所必需的,Sphinx需要这些注册表才能从完整的Django设置生成文档。

现在,autodoc可以使用srand