如何解决您可以仅使用 sphinx-apidoc 自动记录子模块吗?
我为我的点击应用程序使用 sphinx-click 扩展,我想使用 sphinx-apidoc 为 only 子模块生成 .rst 文件。
我已经使用 python Sphinx 文档库大约一年了,我有一个用例......我不太清楚......也许我现在只是瞎了。
的cli工具my_tool/
+-- __init__.py
+-- cli_entry.py
+-- utils
| +-- __init__.py
| +-- foo.py
| +-- bar.py
其中 cli_entry 是一个点击应用程序,它导入 my_tool.utils.foo
和 my_tools.utils.bar
因为这是使用 Click 库。我决定使用 sphinx_click
扩展来记录 cli_entry.py
中的任何命令(它记录了所有很棒的命令)。
但问题是,我想使用 sphinx-apidoc
为 ./my_tool/utils/
模块中的所有内容生成 .rst 文件。
当我将命令用作 sphinx-apidoc -o ../docs/utils my_tool/utils
时,我得到的输出文件包括
docs/
+-- utils
| +-- module.rst
| +-- utils.rst
一开始看起来不错,但打开 utils.rst
后,文件看起来像
utils package
=============
Submodules
----------
utils.foo module
----------------------
.. automodule:: utils.foo
:members:
:undoc-members:
:show-inheritance:
utils.bar module
----------------------
.. automodule:: utils.bar
:members:
:undoc-members:
:show-inheritance:
然后,当我使用 make html
(来自 sphinx 生成的 makefile)构建文档时,我收到一条错误消息,指出 Failed to import 'utils.foo': no module named utils.foo
那是因为导入应该以 my_tool.utils.foo
的形式存在
如何使用 sphinx-apidoc
仅生成子模块并且包含正确的导入路径??也许它是我在 conf.py
中缺少的东西......也许它是我在 sphinx-apidoc 中缺少的一个选项?
编辑:我应该提到我可以使用 exclude_pattern
参数......但我宁愿不必在我的根目录中指定每个 cli 文件。前任。如果我有 cli_entry.py
,cli_commandgroup1.py
... cli_commandgroupN.py
。我希望这个解决方案足够动态,只支持子模块。
编辑:我尝试使用 sphinx-apidoc -o ../docs/utils my_tool/
并创建以下输出
docs/
+-- utils
| +-- module.rst
| +-- my_tool.cli_entry.rst
| +-- my_tool.utils.rst
现在在 my_tool.utils.rst
文件中,导入正确,可以生成文档。
my_tool.utils.foo module
----------------------
.. automodule:: my_tool.utils.foo
:members:
:undoc-members:
:show-inheritance:
指定 my_tool/
的问题是 my_tool.cli_entry.rst
被创建,而这个 .rst 文件已经使用 click-sphinx 扩展名创建。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。