千家信息网

怎么使用Sphinx给Python代码写文档

发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,这篇文章将为大家详细讲解有关怎么使用Sphinx给Python代码写文档,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python 代码可以在源码中包含文档。这种方
千家信息网最后更新 2025年11月15日怎么使用Sphinx给Python代码写文档

这篇文章将为大家详细讲解有关怎么使用Sphinx给Python代码写文档,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Python 代码可以在源码中包含文档。这种方式默认依靠 docstring,它以三引号格式定义。虽然文档的价值是很大的,但是没有充足的文档的代码还是很常见。让我们演练一个场景,了解出色的文档的强大功能。

经历了太多在白板技术面试上要求你实现斐波那契数列,你已经受够了。你回家用 Python 写了一个可重用的斐波那契计算器,使用浮点技巧来实现 O(1) 复杂度。

代码很简单:

# fib.pyimport math _SQRT_5 = math.sqrt(5)_PHI = (1 + _SQRT_5) / 2 def approx_fib(n):    return round(_PHI**(n+1) / _SQRT_5)

(该斐波那契数列是四舍五入到最接近的整数的几何序列,这是我最喜欢的鲜为人知的数学事实之一。)

作为一个好人,你可以将代码开源,并将它放在 PyPI 上。setup.py 文件很简单:

import setuptools setuptools.setup(    name='fib',    version='2019.1.0',    description='Fibonacci',    py_modules=["fib"],)

但是,没有文档的代码是没有用的。因此,你可以向函数添加 docstring。我最喜欢的 docstring 样式之一是 "Google" 样式。标记很轻量,当它放在源代码中时很好。

def approx_fib(n):    """    Approximate Fibonacci sequence     Args:        n (int): The place in Fibonacci sequence to approximate     Returns:        float: The approximate value in Fibonacci sequence    """    # ...

但是函数的文档只是成功的一半。普通文档对于情境化代码用法很重要。在这种情况下,情景是恼人的技术面试。

有一种添加更多文档的方式,专业 Python 人的方式通常是在 docs/ 添加 rst 文件( reStructuredText 的缩写)。因此 docs/index.rst 文件最终看起来像这样:

Fibonacci========= Are you annoyed at tech interviewers asking you to implementthe Fibonacci sequence?Do you want to have some fun with them?A simple:code:`pip install fib`is all it takes to tell them to,um,fib off. .. automodule:: fib   :members:

我们完成了,对吧?我们已经将文本放在了文件中。人们应该会看的。

使 Python 文档更漂亮

为了使你的文档看起来更漂亮,你可以利用 Sphinx,它旨在制作漂亮的 Python 文档。这三个 Sphinx 扩展特别有用:

  • sphinx.ext.autodoc:从模块内部获取文档

  • sphinx.ext.napoleon:支持 Google 样式的 docstring

  • sphinx.ext.viewcode:将 ReStructured Text 源码与生成的文档打包在一起

为了告诉 Sphinx 该生成什么以及如何生成,我们在 docs/conf.py 中配置一个辅助文件:

extensions = [    'sphinx.ext.autodoc',    'sphinx.ext.napoleon',    'sphinx.ext.viewcode',]# 该入口点的名称,没有 .rst 扩展名。# 惯例该名称是 indexmaster_doc = "index"# 这些值全部用在生成的文档当中。# 通常,发布(release)与版本(version)是一样的,# 但是有时候我们会有带有 rc 标签的发布。project = "Fib"copyright = "2019, Moshe Zadka"author = "Moshe Zadka"version = release = "2019.1.0"

此文件使我们可以使用所需的所有元数据来发布代码,并注意扩展名(上面的注释说明了方式)。最后,要确保生成我们想要的文档,请使用 Tox 管理虚拟环境以确保我们顺利生成文档:

[tox]# 默认情况下,`.tox` 是该目录。# 将其放在非点文件中可以从# 文件管理器或浏览器的# 打开对话框中打开生成的文档,# 这些对话框有时会隐藏点文件。toxworkdir = {toxinidir}/build/tox [testenv:docs]# 从 `docs` 目录内运行 `sphinx`,# 以确保它不会拾取任何可能进入顶层目录下的# 虚拟环境或 `build/` 目录下的其他工件的杂散文件。changedir = docs# 唯一的依赖关系是 `sphinx`。# 如果我们使用的是单独打包的扩展程序,# 我们将在此处指定它们。# 更好的做法是指定特定版本的 sphinx。deps =    sphinx# 这是用于生成 HTML 的 `sphinx` 命令。# 在其他情况下,我们可能想生成 PDF 或电子书。commands =    sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html# 我们使用 Python 3.7。# Tox 有时会根据 testenv 的名称尝试自动检测它,# 但是 `docs` 没有给出有用的线索,因此我们必须明确它。basepython = python3.7

现在,无论何时运行 Tox,它都会为你的 Python 代码生成漂亮的文档。

在 Python 中写文档很好

作为 Python 开发人员,我们可以使用的工具链很棒。我们可以从 docstring 开始,添加 .rst 文件,然后添加 Sphinx 和 Tox 来为用户美化结果。

关于"怎么使用Sphinx给Python代码写文档"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

文档 文件 代码 生成 漂亮 方式 目录 名称 情况 更多 有用 样式 篇文章 函数 对话框 扩展名 技术 数列 源码 版本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 闵行区微型软件开发哪家强 互动作业服务器 把自己笔记本电脑改成云服务器 常用的软件开发 web服务器日志 网络安全流光扫描器 我的世界服务器实物图 家客网络技术支撑移动 西青区项目网络技术诚信合作 深圳市游戏软件开发公司 服务器开游戏赚钱吗 识趣网络技术有限公司 小学生网络安全知识教育培训 连数据库加端口号 苏州其然软件开发培训怎么样 软件开发部门工作流程 小学生网络安全宣传内容总结 衡水服务器回收估价 安阳外卖软件开发平台 蔚来员工利用服务器 提取同列中不同数据库 百度云服务器转让账号 网络安全简报标题 抽血进国家数据库能吃早饭吗 江苏大数据网络技术咨询价值 北京健康在线网络技术开发公司 东至新能源软件开发服务价钱 网络安全铸就未来的主题 上海大学生网络安全考试规定 怎么申请免费永久阿里云服务器
0