Python: pydoc模块能输出带相对路径的HTML文档吗?

7 投票
2 回答
1523 浏览
提问于 2025-04-16 19:47

我正在使用pydoc模块来输出一些我用C API定义的类型的文档。这些我想要记录的类型,直到解释器嵌入到我的C程序中才会存在,所以我不能使用pydoc命令。

我让我的C代码调用一个函数,做的事情大致是这样的:

d = pydoc.HTMLDoc()
content = d.docmodule(sys.modules["mymodule"])

这样做是有效的,但生成的HTML页面中链接的目标是硬编码的'file:/'格式。有没有办法使用相对路径来处理链接呢?

(如果有更好的方法来记录在C API中定义的类型,那就更好了)

2 个回答

0

不可以,根据源代码,这个链接是来自一个文件路径,无法被覆盖。

try:
   path = inspect.getabsfile(object)
   url = urllib.parse.quote(path)
   filelink = self.filelink(url, path)
except TypeError:
   filelink = '(built-in)'

https://github.com/python/cpython/blob/55d24edaadba4ee90f464d88b44075649788f128/Lib/pydoc.py#L751

1

我觉得 Sphinx 在这方面做得更好。下面是如何为 C 语言领域编写文档的方法:

http://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#the-c-domain

撰写回答