pydoc
— 文档生成器和在线帮助系统¶
源代码: Lib/pydoc.py
pydoc
模块自动从 Python 模块生成文档。文档可以以文本页面的形式显示在控制台上,提供给网络浏览器,或保存到 HTML 文件中。
对于模块、类、函数和方法,显示的文档来源于对象的 docstring(即 __doc__
属性),并递归地来源于其可文档化的成员。如果没有 docstring,pydoc
会尝试从源代码文件中类、函数或方法定义正上方的注释行块中,或从模块顶部获取描述(参见 inspect.getcomments()
)。
内置函数 help()
在交互式解释器中调用在线帮助系统,该系统使用 pydoc
在控制台上生成文档文本。同样的文本文档也可以在 Python 解释器外部通过在操作系统的命令行提示符下运行 pydoc 脚本来查看。例如,运行
python -m pydoc sys
在 shell 提示符下,将显示关于 sys
模块的文档,其风格类似于 Unix man 命令显示的手册页。pydoc 的参数可以是函数、模块或包的名称,或者是模块内或包内模块中类、方法或函数的点式引用。如果 pydoc 的参数看起来像一个路径(即,它包含您的操作系统的路径分隔符,例如 Unix 中的斜杠),并且引用了一个现有的 Python 源文件,那么将为该文件生成文档。
备注
为了找到对象及其文档,pydoc
会导入要文档化的模块。因此,任何模块级别的代码都会在这种情况下执行。使用 if __name__ == '__main__':
保护来确保只有当文件作为脚本被调用而不是仅仅被导入时才执行代码。
当在控制台打印输出时,pydoc 会尝试对输出进行分页以便于阅读。如果设置了 MANPAGER
或 PAGER
环境变量,pydoc 将使用其值作为分页程序。当两者都设置时,使用 MANPAGER
。
在参数前指定 -w
标志将导致 HTML 文档写入当前目录中的文件,而不是在控制台显示文本。
在参数前指定 -k
标志将搜索所有可用模块的摘要行以查找作为参数给出的关键字,同样类似于 Unix man 命令。模块的摘要行是其文档字符串的第一行。
您还可以使用 pydoc 在本地机器上启动一个 HTTP 服务器,该服务器将向访问的 Web 浏览器提供文档。python -m pydoc -p 1234 将在端口 1234 启动一个 HTTP 服务器,允许您在您首选的 Web 浏览器中浏览 https://:1234/
的文档。将端口号指定为 0
将选择一个任意未使用的端口。
python -m pydoc -n <hostname> 将启动服务器并在给定的主机名上侦听。默认情况下,主机名是 'localhost',但如果您希望服务器可以从其他机器访问,您可能需要更改服务器响应的主机名。在开发过程中,如果您想在容器中运行 pydoc,这尤其有用。
python -m pydoc -b 将启动服务器,并额外打开一个 Web 浏览器到模块索引页。每个提供的页面顶部都有一个导航栏,您可以在其中 获取 单个项目的帮助,搜索 所有模块中摘要行包含关键字的模块,并转到 模块索引、主题 和 关键字 页面。
当 pydoc 生成文档时,它使用当前环境和路径来定位模块。因此,调用 pydoc spam 精确地文档了您在启动 Python 解释器并键入 import spam
时会获得的模块版本。
核心模块的模块文档假定位于 https://docs.pythonlang.cn/X.Y/library/
,其中 X
和 Y
是 Python 解释器的主要和次要版本号。这可以通过将 PYTHONDOCS
环境变量设置为不同的 URL 或包含库参考手册页的本地目录来覆盖。
3.2 版中更新: 添加了 -b
选项。
3.3 版中更新: 移除了 -g
命令行选项。
3.4 版中更新: pydoc
现在使用 inspect.signature()
而不是 inspect.getfullargspec()
来从可调用对象中提取签名信息。
3.7 版中更新: 添加了 -n
选项。