python文档生成工具:pydoc、sphinx;django如何使用sphinx?

如何将Sphinx生成的html文档集成进入Django:

https://www.cnblogs.com/flowjacky/p/6251177.html

使用sphinx-quickstart只会生成index.dst,需哟啊使用api

make html会提示错误,根据提示进行修改

以下内容来自:http://www.huangwenchao.com.cn/2015/12/djangp-sphinx.html

安装 Sphinx 并且生成文档项目

首先我们假设已经有了一个 django 项目的架构:

myproject/
  myproject/
    __init__.py
    settings.py
    urls.py
    wsgi.py
  myapp/
    migrations/
    __init__.py
    admin.py
    models.py
    tests.py
    views.py

在这个基础上,我们要在里面加一个 docs 文件夹放文档项目:

pip3 install Sphinx
mkdir docs
cd docs
sphinx-quickstart

# 注意 autodoc 的地方一定要选是,其他选默认没什么问题。
# ...

# 最后直接生成一下:
make html

如上,先安装 Sphinx 库,然后创建一个目录,在里面执行 sphinx-quickstart,填写参数之后就可以产生文档项目的内容。

这个时候,我们应该获得一个这样的目录:

myproject/
  myproject/
  myapp/
  docs/
    _build/
      doctrees/
      html/
    _static/
    _templates/
    conf.py
    index.rst
    Makefile

很好,我们现在通过 myproject/docs/_build/html/ 就已经获得一个生成好的文档静态网站了,将这个目录静态部署,就已经搭好基本的文档项目了。

撰写基本的手工文档

具体的 reStructuredText 语法,在这里就不多说了,本人其实将这篇文档翻译了一遍,不过还是自行参考原文吧:

然后,我们只需要在项目文档里面创建文件结构以及 *.rst 文档源文件,进行编辑即可。

比较关键的就是在文档中搭建目录引用关系,最终这些目录树会将所有文档的章节拼接成一个整体的目录树:

例如我们在 docs/index.rst 里面加入这个目录树定义:

.. toctree::
   :maxdepth: 3

   usecases/index
   myapp/models
   myapp/admin
   myapp/views

这样的话,对应会目录到下面路径的这几个文件:

myproject/
  docs/
    usecases/
      index.rst
    myapp/
      admin.rst
      models.rst
      views.rst

注意,在我们计划中,usecases 用来存放纯手写的用例文档,而 myapp 文件夹里面的内容是要打算在代码中直接抽取的。

如何实现这一点?自动抽取代码呢?

绑定 Django 项目并从项目生成代码

首先,我们需要让文档项目的上下文能正确加载 django,就好像我们调用 python manage.py shell 得到的上下文一样。

然后,我们在文档里面就可以通过这样的 reST 指令块来指定抽取,以 myapp.model.rst 为例:

myapp.models module
===================

.. automodule:: myapp.models
   :members:
   :undoc-members:
   :show-inheritance:

只要指定了这个 ..automodule 指令,再 make 就可以实现抽取。

但是,我们前面的这个前提“需要让文档项目的上下文能正确加载 django”这一点,并不是那么容易达到的,我就碰到了这个问题:

Stackoverflow: Sphinx-apidoc on django build html failure on django.core.exceptions.AppRegistryNotReady

最终发现了需要在外部装载 django 上下文的方法,参见:

https://docs.djangoproject.com/en/1.9/topics/settings/#calling-django-setup-is-required-for-standalone-django-usage

也就是说,在这里的解决办法是:

编辑 myproject/docs/conf.py,找到:

# sys.path.insert(0, os.path.abspath(‘.‘))

附近这段,然后编辑成这几行:

import django  # 这个最好可以加载顶部和其他的 import 放在一起

# 这个注意由于 django 根目录位于 `docs/conf.py` 本身的上一级目录,因此要用父目录
sys.path.insert(0, os.path.abspath(‘..‘))  

# 下面将 settings 加到环境变量里面,等一下启动的时候就会是用这个配置
os.environ[‘DJANGO_SETTINGS_MODULE‘] = ‘myproject.settings‘

# 关键,用这句加载模块和上下文
django.setup()

有了这一套,就不会出现 django.core.exceptions.AppRegistryNotReady 的异常了。

参考:

1、http://www.huangwenchao.com.cn/2015/12/djangp-sphinx.html

原文地址:https://www.cnblogs.com/shengulong/p/10376437.html

时间: 2024-12-10 09:16:26

python文档生成工具:pydoc、sphinx;django如何使用sphinx?的相关文章

Python文档生成工具pydoc

在Python中有很多很好的工具来生成字符串文档(docstring),比如说: epydoc.doxygen.sphinx,但始终觉得pydoc还是不错的工具,用法非常简单,功能也算不错,本文主要介绍pydoc. pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现的.也可以生成WEB 页面的,还可以在服务器上以浏览器的方式呈现! [用法] Windows下: D:\>python -m pydoc <modulename> # 比如说

微软开源全新的文档生成工具DocFX

微软放弃Sandcastle有些年头了,微软最近开源了全新的文档生成工具DocFX,目前支持C#和VB,类似JSDoc或Sphinx,可以从源代码中提取注释生成文档之外,而且还有语法支持你加入其他的文件链接到API添加额外的说明,DocFX会扫描你的源代码和附加的文件为你生成一个完整的HTML模版网站,你可以自己通过模版定制,目前已经内嵌了几个模版,包括静态的HTML页面和AngularJS页面.你还可以自己定制模版,具体参考 how to create custom template. 源代码

DBImport v3.3 中文版发布:数据库数据互导及文档生成工具(IT人员必备)

前言: 好久没写文了, 距离上一篇文章是3个月前的事了,虽然工作很忙,主要还是缺少写作的内容和激情,所以没怎么动手. 之前有一个来月不断面试不同层次来应聘的人员,很有想写文的冲动,后来还是忍住了. 估计写了也是那种说人坏话.恨铁不成钢的情绪文,没啥营养,所以情绪过了就没想写了. 在公司除了管理上的事情之外,另外也研发了一套适用信息系统的快速开发框架,这个有机会再写写文和大伙分享了. 下面言归正文了. 背景: 关于这个DBImport工具,发布的版本不多,仅有:V1.0.V2.0.V3.0.V3.

使用Objective-C的文档生成工具:appledoc

前言 做项目的人多了,就需要文档了.今天开始尝试写一些项目文档.但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.象 Java 语言本身就自带 javadoc 命令,可以从源码中抽取文档.今天抽空调研了一下 objective-c 语言的类似工具. 从 stackoverflow 上找到三个比较 popular 的工具:doxygen, headdoc 和 appledoc .它们分别的官方网址如下: docxygen http://www.stack.nl/~dimitri/

文档生成工具doxygen+图像生成工具GraphViz

文档生成工具doxygen+图像生成工具GraphViz 虽然jdk自带的javadoc也很好用,不过使用doxygen+GraphViz 的组合可以生成许多强大的图(类图.协作图.文件包含/被包含图.函数调用/被调用图.类继承体系图等),另外,doxygen支持直接生成chm文档,支持LaTeX公式,如果你有一个支持php的服务器,生成的html还可以加入一个搜索框. doxygen是开源的C语言软体,可以在它的官方网站上下载到软体和源码:http://www.stack.nl/~dimitr

(转)Doxygen文档生成工具

http://blog.csdn.net/lostaway/article/details/6446786 Doxygen 是一个支持 C/C++,以及其它多种语言的跨平台文档生成工具.如同 JavaDoc, doxygen 直接从源文件中提取符合 doxygen 注释规范的注释,生成文档[1]. 1.安装 1.1 安装 Doxygen 1.7.4(Windows) 地址:ftp://ftp.stack.nl/pub/users/dimitri/doxygen-1.7.4.windows.bin

【C#附源码】数据库文档生成工具支持(Excel+Html)

[2015] 很多时候,我们在生成数据库文档时,使用某些工具,可效果总不理想,不是内容不详细,就是表现效果一般般.很多还是word.html的.看着真是别扭.本人习惯用Excel,所以闲暇时,就简单的编写了数据库文档生成工具,供大家交流学习之用,与程序员共勉.     该工具为C#控制台,以NPOI为基础,操作Excel.简单方便,简单配置.两次回车,OK!即可生成清晰的数据库文档.另外,支持生成HTML文档.源码大小7MB,OS上传不了,放到百度云盘里了:http://pan.baidu.co

使用Objective-C的文档生成工具

前言 做项目的人多了,就需要文档了.今天开始尝试写一些项目文档.但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.象Java语言本身就自带javadoc命令,可以从源码中抽取文档.今天抽空调研了一下objective-c语言的类似工具. 从stackoverflow 上找到三个比较popular的工具:doxygen, headdoc和appledoc .它们分别的官方网址如下: docxygen http://www.stack.nl/~dimitri/doxygen/ind

.NET平台开源项目速览(4).NET文档生成工具ADB及使用

转载自  http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_ADB_CSharpDocument.html 阅读目录 1.ADB介绍 2.ADB生成.NET文档过程 3.资源与代码 很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧.例如本文在: .NET平台开源项目速览(2)Co