我跟随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()
的位置?
答案 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设置。如果您使用更复杂的设置结构(例如staging
,production
,myproj.settings.dev
设置从某些基本设置延伸),只需更新路径,例如$ make html
。
3⇒最后调用django.setup()
是填充Django应用程序注册表所必需的,Sphinx需要这些注册表才能从完整的Django设置生成文档。
现在,autodoc
可以使用srand
。