我使用sphinx将addind文档添加到我的Django项目(github link,该项目是开源的),但是我包括带有文档字符串的models.py文件但是,当运行时 make html
我不确定我是在修复它们还是只生成一个新的bug . 如果删除了models.py文件的包含,则完全运行 . 换句话说,只有当我在.rst文件中包含以下行时才会生成错误:
.. automodule:: account.models
:members:
让我告诉你我做了什么 .
- 当我运行
make html
命令时,我的第一个错误如下:
警告:autodoc:无法导入模块u'account.models';引发了以下异常:没有名为account.models的模块
我已将以下行添加到sphinx confg.py
文件中:
import os
import sys
sys.path.insert(0, os.path.abspath('../../'))
我创建了一个名为 docs
的文件夹,以包含 sphinx-quickstart
命令生成的所有文件,因此,abspath的值为 ../../
.
- 好了,现在,当我运行
make html
命令时,我得到了第二个错误:
NotperlyConfigured:请求设置USE_I18N,但未配置设置 . 您必须在访问设置之前定义环境变量DJANGO_SETTINGS_MODULE或调用settings.configure() .
我已经集成了internazionalitation Django模块以在应用程序中启用多种语言,我不确定它是如何影响文档生成的,但是,为了修复这个错误,我在sphinx conf.py
文件中添加了以下行:
from django.conf import settings
settings.configure()
- 现在,如果我运行
make html
命令,我有以下消息:
“在”AppRegistryNotReady之前无法初始化翻译基础结构:在应用程序注册表准备好之前无法初始化翻译基础结构 . 检查您是否在导入时不进行非延迟的gettext调用 .
要"fix it"(我不确定它是否真的已修复),我对sphinx conf.py
文件有以下几行:
import django
django.setup()
- 但是现在,当我运行
make html
命令时,我收到以下消息:
RuntimeError:模型类django.contrib.contenttypes.models.ContentType未声明显式的app_label,并且不在INSTALLED_APPS的应用程序中 .
现在我找不到一些方法来解决它 . 如果我从我的.rst文件中删除包含.py文件,所有都运行得很好,但我需要包含在我所有的python文件中创建的文档字符串 .
我该如何解决?
非常感谢 .
重要链接:
我的项目设置:settings.py
Sphinx文件夹:docs/
注意:我已在本地添加以下行到conf.py文件:
from django.conf import settings
settings.configure()
import django
django.setup()
这些更改在github存储库中不可见 .
1 回答
你需要告诉Django使用哪些设置 . 在_2392821中试试这个:
这应该允许构建的其余部分正确运行 .