我有一个Python包,感觉它有一个方法:
from felling.src.email import send_email
根据 Pandas 如何处理
pandas.DataFrame
中的 felling.__init__.py
等导入,我有:
# felling.__init__.py
from felling.src.email import send_email
这允许某人通过使用以下方式导入
felling.src.email.send_email
:
from felling import send_email
最后一个导入方法是我打算导入
send_email
的主要方式。尽管这是有效的,但没有人跑过from pandas.core.api import DataFrame
。
使用 Sphinx 记录
felling
时,它会将 send_email
记录为 felling.src.email.send_email
,而不是 felling.email
。我读过 Pandas 文档,但无法弄清楚他们如何让 Sphinx 将 pandas.core.api.DataFrame
记录为 pandas.DataFrame
。
我该怎么做?
.py
# felling.src.email
def send_email(to:str, subject:str):
"""
Send an email
Parameters
----------
to : str
Who should receive the email
subject : str
What should the emails subject be
"""
print(to)
print(subject)
.rst
felling methods
===============
A package for logging
felling.src.email
------------------------
.. automodule:: felling.src.email
:members:
:undoc-members:
:show-inheritance:
├── README.md
├── __init__.py
├── __main__.py
├── resources
│ └── logger.json
├── src
│ ├── __init__.py
│ ├── compare_logs.py
│ ├── configure_felling.py
│ └── email.py
└── version.py
拥有
__init__.py
文件使得类和函数的 限定名称 可能不直接对应于模块作为文件的组织方式。 这个答案中给出了一个很好的例子。
autodoc 指令会像在 Python 中通常那样导入对象。指令的第一个参数应该是它导入的对象的完全限定名称,因此
__init__.py
更改以允许导入的任何名称也应该可以用作指令的参数。
autodoc 提供了几个指令,它们是常用 py:module、py:class 等的版本。在解析时,它们导入相应的模块并提取给定对象的文档字符串,将它们插入到合适的 py:module、py:class 等指令下的页面源中。
这意味着,在这个问题中,您可以使用:
.. autofunction:: felling.send_email
或
.. automodule:: felling
你能帮我一下吗?这里我也有类似的情况,但问题是我按照你的指示做了,automodule和我的模块的名称。但也有完全相同的错误。你会帮忙吗?