使用sphinx自动提取python中的注释成为接口文档

摘要:
Sphinx可以根据python注释自动生成接口文档,这有利于确保文档和代码函数的同步。˃自动文档:automaticallyinsertdocstringsfrommodules(y/n)[n]:默认情况下选择其他项后,将在当前目录中创建文档目录,所有与斯芬克斯相关的文件将位于文档目录$lsdoc/__buildconf.pyindex.rstMakefile _static_Templates$vidoc/conf中。py#修改文件内容sys。路径插入系统。路径insert#缺少此行将导致在执行html__import__错误时出现提示,模块未找到。因此,必须将上层目录包含在$sphinxapidocodoc/中。创建文件文件/a。第一。创建文件文档/模块。rst#添加生成的文档/模块。第一个索引。rst$vidoc/指数。rst内容:。。扭矩::最大深度:2个模块。rst在doc/_Build/html中生成html页面$cddoc$makehtml生成的html文档。狮身人面像对只适用于蟒蛇2.7或蟒蛇3。

写好了代码,交付给他人使用的时候,查看代码固然可以了解各类和函数的功能细节,但接口文档能更方便的查找和说明功能。所以,一价与代码同步的接口文档是很有必要的。sphinx可以根据python中的注释,自动的生成接口文档,这样有利于保证文档和代码功能的同步。让我们来了解如何自动生成文档。

1. python代码格式。

class A:
    '''
    你好!
    '''
    @staticmethod
    def Aa():
        '''
        你也好!
        '''
        fun1()

看到类和函数中,都加入了注释。

2. 安装shpinx

pip install sphinx -i https://pypi.doubanio.com/simple --trusted-host pypi.doubanio.com

使用国内的镜像安装比较快。

3. 配置shpinx

$ cd myproject
$ sphinx-quickstart
Enter the root path for documentation.
> Root path for the documentation [.]: doc
> Project name: XXX
> Author name(s): XXX
> Project version []: 1.0
> Project release [1.0]:
> Project language [en]: zh_CN #如果注释中有中文,这里必须设置。否则生成接口文档出错。
> autodoc: automatically insert docstrings from modules (y/n) [n]: y
其它项都选择默认

 完成之后,会在当前目录创建 doc 目录,所有sphinx相关的文件都在 doc目录下。

$ ls doc/
_build  conf.py  index.rst  Makefile  _static  _templates
$ vi doc/conf.py  #修改文件内容
sys.path.insert(0, os.path.abspath('.')) 
sys.path.insert(0, os.path.abspath('..')) # 缺少此行会导致在make html时提示 __import__出错,找不到module。 所以必须把上一级目录(即代码所在目录)include进来

$ sphinx-apidoc -o doc/ .
Creating file doc/a.rst.
Creating file doc/modules.rst

# 把生成的 doc/modules.rst添加到index.rst
$ vi doc/index.rst

Contents:
 .. toctree::
    :maxdepth: 2

    modules.rst

生成html页面
$ cd doc
$ make html

生成的html文档,在doc/_build/html里。

 sphinx对仅工作在python2.7 或python3上。当文件中有中文时,可能会报错:'ascii' codec can't decode byte 0xe2 in position xxx。可以在报错的地方加入:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

免责声明:文章转载自《使用sphinx自动提取python中的注释成为接口文档》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇深入浅出理解linux inode结构Mac下Android Studio配置adb下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python学习第118天(Django回头看:MVCMTV、Django初步、static、url命名、分区)

今天开始重新复习,内容看的也更连贯一些,下面开始内容复述,先说一下MTV和MVC的问题 MVC(modles views controller)即web应用模型,可以指代各种各样的模型 modles即为模型 views 视图,特指用户看到的html文件 controller控制器 MTV(modles template views)即为Django模型,...

用Python实现多核心并行计算

平常写的程序,无论是单线程还是多线程,大多只有一个进程,而且只能在一个核心里工作。所以很多应用程序即使正在满载运行,在任务管理器中CPU使用量还是只有50%(双核CPU)或25%(四核CPU) 如果能让一个程序自己建立出多个进程,并且让它们并行运行,那么就可以在不同cpu核心上同时运行,进而实现并行计算啦。 Python的并行计算就是这么做的。 之前的理解...

centos 配置vlan

centos 配置vlan https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/sec-configure_802_1q_vlan_tagging_using_the_command_line 在 Red Hat Ent...

python爬虫03:那个叫做 Urllib 的库让我们的 python 假装是浏览器

相信你已经摸清了 浏览器各种请求的套路 也知道了怎么在手机上进行请求和返回数据的抓取 那么接下来我们就开始来使用 python 了 代码 lu 起来 那么 怎么用 python 写各种请求呢? 今天要给大家介绍的就是 Urllib 这可是 python 内置的库 有了它 我们写代码就轻松了 腰也不疼了 腿也不酸了 头发也不秃了 那么怎么使用Urll...

java~jackson实现接口的反序列化

jackson是springboot中集成的序列化方式,是默认的json序列化方式,当然你可以使用其它的序列化工具代替它,不过今天我们还是说一下它,使用jackson进行序列化一个类,然后再把它的JSON字符反序列化为它的接口对象。 现实 这种方式默认是不行的,因为接口不能被自动实例化 使用redisTelmplete时,如果使用objectMapper...

python 基础数据类型

python基础数据类型 一.什么是数据类型? 二.基础数据类型。 2.1数字int。 2.2布尔值bool。 2.3字符串str。 2.4元祖tuple。 2.5列表list。 2.6字典dict。 2.6集合set。 三.python基础初始总结 四.其他 一.什么是数据类型? 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算...