sphinx-如何包含Python函数作为源代码

sphinx-如何包含Python函数作为源代码,python,python-sphinx,Python,Python Sphinx,Sphinx非常擅长链接到特定的Python对象 例如,写作 :func:`foo.bar` 将直接链接到foo.py中的bar函数。我想要同样的功能,但我不想创建一个可点击的链接,而是希望它是bar()的代码 。。代码块::language指令要求您手动编写要添加的代码。但是我想使用链接到已经存在于外部Sphinx项目中的代码,而不是自己编写代码:mod:,:func:,以及其他仅创建链接,而不实际包含源代码的链接 还有。。literalinclude::filename但在我的例子中,我不

Sphinx非常擅长链接到特定的Python对象

例如,写作

:func:`foo.bar`
将直接链接到
foo.py
中的
bar
函数。我想要同样的功能,但我不想创建一个可点击的链接,而是希望它是
bar()
的代码

。。代码块::language
指令要求您手动编写要添加的代码。但是我想使用链接到已经存在于外部Sphinx项目中的代码,而不是自己编写代码<代码>:mod:,
:func:
,以及其他仅创建链接,而不实际包含源代码的链接

还有
。。literalinclude::filename
但在我的例子中,我不能使用它,因为该函数来自Sphinx项目之外(它使用intersphinx链接,并且不是实际项目的一部分)。即使
。。literalinclude::filename
可以跨项目工作,我认为我仍然需要使用
:lines:
来过滤每个函数,这将是跟踪的一大难题


如何通过名称空间路径引用函数/类,并使用该路径将其源代码直接添加到sphinx rst文件中?(不是作为一个可点击的链接,而是文字代码)。

没有人回复,所以我做了自己的:

此功能是现成的。您要查找的是
literalclude
指令及其
:pyobject:
参数

---[mymodule.py]------------
def hello(who):
    print(f'Hello {who} !')


---[mydocumentation.rst]----

Bla bla bla lorem ipsum

.. literalinclude: ../../path/to/mymodule.py
   :pyobject: hello

这将只包括文档中的
hello()
函数的代码。

如第3段所述,literalinclude不起作用,因为它需要一个路径,我无法访问该路径,因为它位于不同的目录/git存储库中。除非它可以通过名称空间引用,并且仍然使用intersphinx,否则它是没有用的。