繁体   English   中英

在我的Django项目中无法使用Sphinx生成autodoc

[英]Can't generate autodoc using Sphinx in my Django project

我使用sphinx将addind文档添加到我的Django项目( github链接 ,该项目是开源的),但是当尝试生成autodoc的python文件时,我遇到了很多错误。 我包含了一个带有docstrings的models.py文件,但是,当运行make html我会遇到不同的错误。 我做了一些更改,但错误正在改变,但我不确定我是修复它们还是只生成一个新错误。 如果删除了models.py文件的包含,则完全运行。 换句话说,只有当我在.rst文件中包含以下行时才会生成错误:

.. automodule:: account.models
    :members:

让我告诉你我做了什么。

  1. 当我运行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的值为../../

  1. 好的,现在,当我运行make html命令时,我得到了第二个错误:

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

我已经集成了internazionalitation Django模块以在应用程序中启用多种语言,我不确定它是如何影响文档生成的,但是,为了解决这个错误,我在sphinx conf.py文件中添加了以下行:

from django.conf import settings
settings.configure()
  1. 现在,如果我运行make html命令,我有以下消息:

“在AppRegistryNotReady之前无法初始化翻译基础架构:在应用程序注册表准备好之前,无法初始化翻译基础结构。 检查您是否在导入时不进行非延迟的gettext调用。

要“修复它”(我不确定它是否真的已修复它),我对sphinx conf.py文件有以下几行:

import django
django.setup()
  1. 但是现在,当我运行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存储库中不可见。

你需要告诉Django使用哪些设置。 docs/conf.py试试这个:

import os
import sys

# I've simplified this a little to use append instead of insert.
sys.path.append(os.path.abspath('../../'))

# Specify settings module
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')

# Setup Django
import django
django.setup()

# ... leave the rest of conf.py unchanged

这应该允许构建的其余部分正确运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM