包结构和文件设置如下:
$ tree .
.
├── doc
│ ├── Makefile
│ ├── README.md
│ ├── _build
│ ├── _static
│ ├── conf.py
│ ├── foo.rst
│ ├── index.rst
│ └── make.bat
└── foo
├── __init__.py
└── spam.py
$ cat foo/__init__.py
r'''
The Foo module
==============
.. autosummary::
:toctree: generated
spam
'''
$ cat foo/spam.py
r'''
The Spam Module
===============
'''
def prepare(a):
'''Prepare function.
Parameters
----------
a : int
'''
print(a)
$ cat doc/index.rst
Welcome to foo's documentation!
=====================================
API Reference
-------------
.. toctree::
:maxdepth: 1
foo
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
$ cat doc/foo.rst
.. automodule:: foo
在make html
生成sphinx文档后,列出了函数prepare
,但没有记录此函数的签名:
$ cat generated/foo.spam.rst
foo.spam
========
.. automodule:: foo.spam
.. rubric:: Functions
.. autosummary::
prepare
我的问题是如何生成那么,在这种情况下如何自动生成函数签名?
答案 0 :(得分:0)
.. automodule:: foo.spam
我认为这是你的问题(如果你还没有解决的话)
不正确的方式
.. automodule:: spam
答案 1 :(得分:0)
您可能会将python
代码与Sphinx文档(由.rst
文件渲染)混淆了。
例如,如果您要记录foo
模块,则不会从init中的代码生成该模块:
$ cat foo/__init__.py
r'''
The Foo module
==============
.. autosummary::
:toctree: generated
spam
'''
但是,您需要打开一个名为foo.rst
的文件,然后可以在其中放置用于Sphinx的代码以读取:
$ cat doc/foo.rst
The Foo module
==============
.. autosummary::
:toctree: generated
spam
在index.rst
文件的主目录(toctree
)中,您只能链接到其他.rst文件。
以上一节中的foo.rst
文件为例,您可以在此处链接到该文件:
$ cat doc/index.rst
Welcome to foo's documentation!
=====================================
API Reference
-------------
.. toctree::
:maxdepth: 1
foo
您可以查看我制作的this example documentation。每个页面都包含.rst
源代码,因此您可以遵循其源代码。
祝你好运!