如何在Sphinx生成的Python项目文档中移除"module"字样?
嘿,我刚好遇到过这个问题!要把Sphinx生成的Python项目文档里,所有位置(导航栏、目录、页面标题等)的"module"字样去掉,有几个实用的办法,我给你整理一下:
解决Sphinx文档移除"module"后缀的方法
方法1:修改Sphinx配置文件(最省心推荐)
这是最简单有效的办法,直接在你的docs/source/conf.py配置文件里添加或者修改以下配置项:
add_module_names = False
这个设置会告诉Sphinx不要在模块名称后面追加"module"后缀,而且会全局生效——不管是页面标题、侧边导航栏还是目录结构,都会自动去掉那个烦人的"module"。
修改完配置后,重新执行make html就能看到效果,甚至不需要重新运行sphinx-apidoc(不过如果之前生成的rst文件里已经硬编码了"module",重新跑一遍sphinx-apidoc -f -o ./source/ ..再编译会更稳妥)。
方法2:手动修改生成的RST文件(临时应急用)
如果你不想改动配置,也可以直接修改sphinx-apidoc生成的.rst文件。比如打开docs/source/utils.rst和docs/source/main.rst,把文件开头的标题从:
utils module
改成:
utils
保存后重新执行make html就可以了。不过这个方法的缺点很明显——每次重新运行sphinx-apidoc -f(强制覆盖生成)的时候,这些修改都会被冲掉,需要重复操作,所以只适合临时用用。
方法3:自定义apidoc模板(定制化需求用)
如果你的项目需要更多定制化的文档格式,可以自定义apidoc的模板:
- 找到你Python环境中Sphinx的apidoc模板目录(一般在
site-packages/sphinx/apidoc/templates下) - 把里面的
module.rst_t文件复制到你的项目目录,比如docs/templates/apidoc/ - 打开复制后的模板文件,把里面的
{{ fullname }} module改成{{ fullname }} - 执行
sphinx-apidoc的时候加上--template-dir参数指定自定义模板:
sphinx-apidoc -f -o ./source/ .. --template-dir ../templates/apidoc/
这个方法适合需要深度定制文档结构的场景,但操作起来比方法1繁琐不少。
内容的提问来源于stack exchange,提问作者jessexknight
相关产品推荐
相关产品推荐

