2

我正在使用Sphinx来记录我的项目。当我跑步时,make html我收到了这个错误。

我已经安装了Sphinx v1.1.2。某些文件中可能存在一些错误.rst,但此错误消息没有帮助,因为我不知道要检查哪个文件,因为我有超过 100 个.rst文件。所以很难一一检查文件。

有没有办法解决这个错误或至少找出哪个文件是错误的?

提前致谢。

4

2 回答 2

3

检查在此错误之前正在处理的模块。该模块可能缺少if __name__ == '__main__'检查。

这里的问题是:

  • sphinx-apidoc(或任何你用来生成你的 rst 的东西)可能把 automodule/autoclass/... 放在你的 rst 中。
  • autodoc当 sphinx在 rst 文件中遇到 autoXXX 指令时,它会使用扩展名从 .py 文件中获取 doc 字符串。
  • autodoc 导入 .py 模块以从中提取文档字符串。
  • import如果一个模块默认假设它只是一个可执行文件(即没有检查__main__),你会得到错误。

造成 a$$ 错误的原因是大多数开发人员会在错误 args 上显示的错误消息中使用sys.argv[0]sys.argv[0:],导致在这种情况下打印完全不适当的错误消息。

于 2014-03-06T22:31:38.007 回答
1

如果您使用的是sphinx-apidoc并且您的包在同一文件夹中使用setuptools 和 setup.py,请确保隐藏setup()对构造的调用if 'main' == __name__:

于 2014-03-07T15:36:52.477 回答