忽略autodoc中的某些模块

时间:2015-12-22 05:50:04

标签: python python-sphinx documentation-generation

我正在尝试仅为所选模块使用autodoc。我创建了一个包含以下内容的文件:

.. automodule:: some.specific.module
   :members:

它正确生成。不幸的是,autodoc也在不断尝试解析其他文件(并且由于导入错误而失败)。我知道我可以嘲笑一些模块,但我想要一个更好的解决方案 - 阻止sphinx开始看它们。

如何确保仅加载所请求的模块,而不是(例如)test.other.module

2 个答案:

答案 0 :(得分:0)

我看到三种可能的原因:

  • Sphinx的缓存导致问题,make clean将解决问题
  • 您的模块位于包中,包含__init__.py文件 导入这些“其他文件”(或者更准确地试图 导入他们);
  • 导入了这些“其他文件”,因为您已设置PYTHONSTARTUP

答案 1 :(得分:0)

所以事实证明这是一个愚蠢的错误。由于某些工具会为api文档源生成一个脚手架,因此这些文件会被遗留下来并触发错误的导入。

如何找到它:

  • sphinx具有多级调试日志记录,通常不会被激活
  • 您可以看到哪些行通过调试输出触发导入,如
 [autodoc] /path/to/the/doc.rst:158: input:
 .. automodule:: app.module.name
    :members: