【问题标题】:Ignore some modules in autodoc忽略 autodoc 中的一些模块
【发布时间】:2015-12-22 05:50:03
【问题描述】:

我正在尝试仅对选定的模块使用自动文档。我创建了一个文件,其中包括:

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

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

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

【问题讨论】:

标签: python python-sphinx documentation-generation autodoc


【解决方案1】:

结果证明这是一个愚蠢的错误。由于某些工具会为 api 文档源生成脚手架,因此这些文件被搁置并触发了错误的导入。

这是如何找到的:

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

【讨论】:

    【解决方案2】:

    我看到了三种可能的原因:

    • Sphinx 的缓存出了问题,make clean 会解决这个问题
    • 你的模块位于一个包中,包的__init__.py文件 正在导入这些“其他文件”(或者更准确地说是试图 导入它们);
    • 这些“其他文件”被导入是因为你设置了PYTHONSTARTUP

    【讨论】:

      猜你喜欢
      • 2013-03-21
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 2023-03-15
      • 1970-01-01
      • 2013-04-30
      相关资源
      最近更新 更多