如何让pydoc仅生成指定模块及其子模块的文档,排除测试目录并自定义输出路径
pydoc文档生成需求解决方案
核心思路
pydoc本身没有提供目录排除、输出路径指定的原生参数,我们可以通过文件遍历工具批量筛选目标源文件,统一调度pydoc生成后归集到指定目录,全程不需要手动维护文件列表。
Bash 脚本(适配Linux/macOS/WSL)
直接替换你仓库内的generate_docs.sh内容即可:
#!/bin/bash mkdir -p docs find . -type f -name "*.py" ! -path "*/tests/*" | while read -r pyfile; do python -m pydoc -w "$pyfile" mv "${pyfile%.py}.html" docs/ done
Windows PowerShell 脚本
如果在Windows环境运行,保存为generate_docs.ps1执行:
New-Item -ItemType Directory -Path docs -Force | Out-Null Get-ChildItem -Recurse -Filter *.py | Where-Object { $_.FullName -notmatch '\\tests\\' } | ForEach-Object { python -m pydoc -w $_.FullName $htmlName = $_.BaseName + ".html" Move-Item -Path $htmlName -Destination docs/ -Force }
补充说明
- 脚本会自动识别所有非
/tests/目录下的Python源文件,新增代码文件不需要修改脚本 - 所有生成的HTML文档会统一存放在
/docs/目录,不会污染源码根目录 - 你提到的绝对路径链接问题属于pydoc原生限制,如果需要调整为相对路径,可以在上述脚本末尾增加正则批量替换规则,批量修改生成的HTML文件内的链接前缀即可。
内容的提问来源于stack exchange,提问作者MatthewMartin
相关产品推荐
相关产品推荐

