如何使用 sphinx 来生成代码文档

栏目: 编程工具 · 发布时间: 5年前

内容简介:当编写比较大的库时,如果代码具有良好的注释规范,可以使用良好的代码中可能超过 50% 都属于注释。不鼓励写很多不用的注释,但是清晰的注释使得文档的阅读,代码的 理解都会方便很多。个人更加倾向于

当编写比较大的库时,如果代码具有良好的注释规范,可以使用 sphinx 来生成文档。本文主要介绍生成文档 的步骤,以及编写代码中注释的添加方式。本文主要参考 Reference ,更加详细的使用说明可以参考它。 本文主要简单介绍下基本的规范,以及生成文档的方式。

注释

良好的代码中可能超过 50% 都属于注释。不鼓励写很多不用的注释,但是清晰的注释使得文档的阅读,代码的 理解都会方便很多。个人更加倾向于 Google 的风格

模块注释

.. module:: module_name
.. moduleauthor:: some one <some_one@some.com>

# Other documents about `module_name`

类的注释

>>> 用于增加代码块,但是注意其前后需要增加空行。

class StarCraft(object):

    StarCraft is a fantastic class.
       Bla. Bla.

       >>> sc = StartCraft()
       >>> sc.start(1, 'north')

    def __init__(self):
        super(StarCraft, self).__init__()

函数的注释

def start(engine, direction):
    start a starcraft
    Args:
       engine(int): engine number
       direction(str, int): direction to fly
    Returns:
       boolean: indicate whether starting operation is successful.
    Raises:
       BadEngineError: engine number is not supported

    pass

生成文档

如果我们是按照上述方式来给模块、类以及函数增加注释的,那么就很容易使用。按照 参考 中的 an_example_pypi_project 的内容来组织代码,其目录结构如下。注意 usefule_2 的模块代码不能直接 复制 useful_1 的,自己随便增加点内容即可,格式按照上一部分来定。

an_example_pypi_project
├── __init__.py
├── useful_1.py
└── useful_2.py

安装 sphinx :

pip install sphinx

我们创建任意一个目录,然后 cd 进入那个目录。本文在工程同级目录创建了一个 docs 目录。

├── an_example_pypi_project
└── docs

初始化

然后进入 docs 目录,先执行初始化的命令

sphinx-quickstart

有几个选项需要打开:

  • Separate source and build directories (y/n) [n]: y
  • autodoc: automatically insert docstrings from modules (y/n) [n]: y

此时的目录结构如下:

├── an_example_pypi_project
├── docs
│   ├── build
│   └── source
│       ├── _static
│       └── _templates

生成 API 文档

第一个选项是指定输出的文件夹,第二个选项是 python 包的路径。

sphinx-apidoc -o source ../an_example_pypi_project

目录结构如下:

├── Makefile
├── build
└── source
    ├── _static
    ├── _templates
    ├── an_example_pypi_project.rst
    ├── conf.py
    ├── index.rst
    └── modules.rst

这个时候有个比较重要的操作, source/conf.py 中有部分代码被注释,需要增加回来

import os
import sys
sys.insert(0, os.path.abspath('../..')
# sys.insert(0, os.path.abspath('path-to-an_example_pypi_project')
# 不包括:`an_example_pypi_project`

这里的路径是需要执行你模块的所在的目录。

生成 HTML 文件

进入 source 目录, ./html 是输出的文件夹。

sphinx-build -b html . ./html

如果之前生成过 Makefile ,在那个 Makefile 所在的目录,执行 make html ,会生成 build/html/ 目录。

展示网页

到这里,HTML 已经生成,可以展示给用户。使用 Python 自带的模块就可以提供服务了。

进入生成的 HTML 文件夹:

python -m SimpleHTTPServer 8080

在浏览器中输入 localhost:8080 就可以看到之前的代码注释啦~

如何使用 sphinx 来生成代码文档

This work is licensed under a CC A-S 4.0 International License

.


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

高中数学公式定律及要点透析

高中数学公式定律及要点透析

牛胜玉 编 / 2011-2 / 9.80元

《PASS绿卡图书:高中数学公式定律及要点透析(人教A版)(必修+选修)(第9次修订)》精选例句:时尚鲜活例句,再现巩固单词;延伸拓展:搭配用法辨析,提升运用能力;真题例句:精选真题例句,紧密联系高考。便于携带:三年教材词汇,方便随时记忆;附赠录音:用耳朵记单词,让学习零空隙。一起来看看 《高中数学公式定律及要点透析》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试