Python 阻止Sphinx执行模块

Python 阻止Sphinx执行模块,python,python-sphinx,Python,Python Sphinx,我正在尝试使用Sphinx生成python文档。问题是sphinx build最终执行模块/评估全局范围内的任何内容。它这样做有什么原因吗?有人知道可以设置为禁用此功能的标志吗 Sphinx似乎在尝试代码覆盖或其他类似的功能,这绝对不是我想要它做的。通常情况下,这不会是一个问题,但是一组特定的模块非常特定于一个环境 Sphinx会评估全局范围内的所有内容,因为autodoc插件会导入模块,而导入模块会评估全局范围内的所有内容 要停止此操作,请执行以下操作之一: 禁用autodoc插件(在sph

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


Sphinx似乎在尝试代码覆盖或其他类似的功能,这绝对不是我想要它做的。通常情况下,这不会是一个问题,但是一组特定的模块非常特定于一个环境

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

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

  • 禁用autodoc插件(在sphinx配置文件中搜索
    autodoc
    ),或
  • 保护你不想用
    if\uuuuu name\uuuu==“\uuuuu main\uuuu”:do\u stuff()之类的东西执行的代码

是,autodoc时,sphinx导入模块是正常的。为了检索docstring、类和函数信息等,它必须这样做。您能提供更多的信息吗?它是如何停止的?什么信息?等等。啊——是的,这很方便,因为我的几个全局变量只与作为脚本运行的模块相关。我可以把它们放在声明中。谢谢是否可以在不导入模块的情况下使用autodoc?例如,如果我们只需要autodoc来读取/解析docstring(不包含任何测试或任何类型的奇特代码解释,只包含纯文本)。导入我们所有的项目依赖项来读取docstring,这看起来有点过分了。我认为仅仅为了获取docstring而执行代码是一个非常糟糕的设计,它会将构建时转换为运行时。他们可以像已知世界中的任何其他代码文档生成器一样解析代码并提取docstring。