更新(2020 年 5 月 30 日): Github 用户“mr-ubik”已经整理了一个包来为 Tensorflow 2.0objects.inv的Python API(不是 JS、C++ 或 Java)自动生成一个包,可以在这里找到。存储库既有objects.inv文件本身,也有用于创建它的工具,以及用于将其intersphinx_mapping链接到您的文档的元素。
更新(2021 年 3 月 16 日):根据评论,STJ 在https://github.com/GPflow/tensorflow-intersphinx/的分叉中继续开发用于自动生成objects.invfor Tensorflow的工具。该清单现在以 TensorFlow v2.4 为目标,包括 TensorFlow Probability v0.12。
mzjn 是对的——如果文档不是 Sphinx 生成的,则不会有objects.inv文件可供查找。
但是,您可以创建自己的objects.inv与 Tensorflow 一起使用。我编写了一个 Python 包来让我做这个确切的事情,以及操作说明。简而言之,请注意这里的一些细节可能不完全正确:
导入sphobjinv并创建一个空的Inventory:
>>> import sphobjinv as soi
>>> inv = soi.Inventory()
定义 Sphinx 头信息:
>>> inv.project = 'Tensorflow'
>>> inv.version = '2.2'
sphobjinv.DataObjStr将实例附加到您希望包含的每个对象的objects成员:Inventory
>>> o = soi.DataObjStr(name='tf.autodiff', domain='py', role='module',
... priority='1', uri='python/tf/autodiff', dispname='-')
>>> inv.objects.append(o)
>>> print(inv)
<Inventory (manual): foobar v1.5, 1 objects>
{name}通常是完全限定的对象名称。文档的 Python、C++ 和 Javascript 部分可以由默认python的cpp、 和jsSphinx 域处理,但您必须为 Java创建自己的 Sphinx 域。(不幸的是,提供这样一个域的javasphinx项目{role}已被弃用。)将是适用于每个记录的对象的任何合适的指令(例如,function域method的 、 等py)。{priority}也会影响清单中的对象在内部文档搜索中的显示方式,并且几乎应该总是1处于这样的情况。{relative uri}相对于您将包含在参数中的基本intersphinx_mappingURIconf.py(见下文)。{displayname}通常也是完全限定的对象名称。
生成并压缩清单内容,并写入磁盘:
>>> text = inv.data_file(contract=True)
>>> ztext = soi.compress(text)
>>> soi.writebytes('objects_tensorflow.inv', ztext)
上传到方便、可访问的位置。
配置 intersphinx:
intersphinx_mapping = {
'tensorflow' = (
'https://www.tensorflow.org/versions/r2.2/api_docs/',
'uri/to/objects_tensorflow.inv',
)
}
那应该这样做。这有点费力,必须手动合成文件,但如果您只是根据需要添加对象,那应该不会太糟糕。或者,您可以抓取文档页面集并自动生成清单(就像 mr-ubik 所做的那样)。