sphinx-如何包含Python函数作为源代码
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但在我的例子中,我不
: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,否则它是没有用的。