9

我继承了一个相当大的代码库,我想为其创建 HTML 文档。因为它是用 Python 编写的,所以我决定使用 Sphinx,因为代码的用户已经习惯了使用 Sphinx 创建的 Python 文档的设计和功能。我使用该命令sphinx-apidoc自动创建.rst文件。我将模块路径导入sys.path,以便 Sphinx 可以找到代码。

到目前为止,一切都很好。但是,当我尝试使用 command 创建 HTML 时make html,会弹出许多回溯,并且代码库中的一些示例似乎已被执行。这可能是什么原因,我该如何防止这种情况发生?

4

2 回答 2

13

使用autodoc时,Sphinx 会导入文档化的模块,因此所有模块级代码都会被执行。每次您执行“制作 html”时都会发生这种情况。从这个意义上说,Sphinx 确实“运行”了您的代码。

您可能必须以不同的方式组织代码以使错误消失(将模块级代码移动到函数中)。有关可能发生的情况的示例,请参阅此问题。

这是我的猜测,但可能不是全部。如果没有更多信息,很难说更多。

于 2012-09-13T18:00:46.780 回答
3
def main():

    print('hello world')

if __name__ == '__main__':

    main()

这样您的代码将不会运行。

于 2017-10-13T22:13:15.480 回答