阻止Sphinx执行模块

时间:2012-06-13 00:07:15

标签: python python-sphinx

我正在尝试使用Sphinx进行python文档生成。问题是sphinx-build最终会执行模块/评估全局范围内的任何内容。它有这样做的原因吗?有没有人知道可以设置为禁用此标志的标志?

似乎Sphinx试图进行代码覆盖或类似的东西,这绝对不是我想要的。通常这不是问题,但是一组特定的模块非常特定于环境。

1 个答案:

答案 0 :(得分:7)

Sphinx评估全局范围内的所有内容,因为autodoc插件导入模块,导入模块会评估全局范围内的所有内容。

要停止此操作,请执行以下操作:

  • 禁用autodoc插件(在sphinx配置文件中搜索autodoc)或
  • 使用if __name__ == "__main__": do_stuff()
  • 之类的内容保护您不想执行的代码