忽略 autodoc 中的一些模块
Ignore some modules in autodoc
我正在尝试仅对选定的模块使用 autodoc。我创建了一个文件,其中包括:
.. automodule:: some.specific.module
:members:
并且生成正确。不幸的是,autodoc 也一直在尝试解析其他文件(并且由于导入错误而失败)。我知道我可以模拟一些模块,但我想要一个更好的解决方案 - 阻止 sphinx 开始查看它们。
如何确保只加载请求的模块,而不是(例如)test.other.module
。
我发现发生这种情况的三个可能原因:
- Sphinx 的缓存有问题,
make clean
可以解决问题
- 您的模块位于一个包中,并且包的
__init__.py
文件
正在导入这些 "other files"(或者更准确地说是试图
导入它们);
- 这些"other files"是导入的,因为你设置了PYTHONSTARTUP
原来这是一个愚蠢的错误。由于某些工具会为 api 文档源生成脚手架,因此这些文件被遗弃并触发了错误的导入。
这是如何找到的:
- sphinx 有多个级别的调试日志记录,通常不会被激活
- 你可以通过像
这样的调试输出来查看哪些行触发导入
[autodoc] /path/to/the/doc.rst:158: input:
.. automodule:: app.module.name
:members:
我正在尝试仅对选定的模块使用 autodoc。我创建了一个文件,其中包括:
.. automodule:: some.specific.module
:members:
并且生成正确。不幸的是,autodoc 也一直在尝试解析其他文件(并且由于导入错误而失败)。我知道我可以模拟一些模块,但我想要一个更好的解决方案 - 阻止 sphinx 开始查看它们。
如何确保只加载请求的模块,而不是(例如)test.other.module
。
我发现发生这种情况的三个可能原因:
- Sphinx 的缓存有问题,
make clean
可以解决问题 - 您的模块位于一个包中,并且包的
__init__.py
文件 正在导入这些 "other files"(或者更准确地说是试图 导入它们); - 这些"other files"是导入的,因为你设置了PYTHONSTARTUP
原来这是一个愚蠢的错误。由于某些工具会为 api 文档源生成脚手架,因此这些文件被遗弃并触发了错误的导入。
这是如何找到的:
- sphinx 有多个级别的调试日志记录,通常不会被激活
- 你可以通过像 这样的调试输出来查看哪些行触发导入
[autodoc] /path/to/the/doc.rst:158: input:
.. automodule:: app.module.name
:members: