Sphinx未正确更新文档

7 投票
2 回答
5004 浏览
提问于 2025-04-18 15:03

我正在使用Sphinx来为一个Python应用程序编写文档,我用命令sphinx_build_script -b html <path/to/source> <path/to/build>来生成index.html文件。当我修改了文档字符串后,再次使用相同的命令时,发现生成的html内容似乎没有正确更新。

我尝试删除了_build、_sources和构建目录下的所有index文件,但还是没有解决问题。

这是生成的html文件:

PDF报告生成类 :param orientation: 方向可以是竖版或横版。 :param unit: 默认单位是毫米。 :param format: PDF文档的格式(A4、A6、Letter)。

这是源代码:

"""PDF报告生成类 :param orientation: 方向可以是竖版或横版。 :type orientation: 字符。 :param unit: 默认单位是毫米。 :param format: PDF文档的格式(A4、A6、Letter)。 这是一个更新 """

在连续多次运行构建命令后,似乎html文件只有1/5的几率会更新。

2 个回答

2

我在开发一个软件包的时候也遇到了同样的问题。如果我更新了文档说明,删除了所有的构建文档,然后重新构建,API文档还是没有变化。为了解决这个问题,我必须重新安装这个软件包,或者以可编辑模式安装它。

pip install -e .

现在重新构建文档应该能显示更新后的文档了。

1

这不是正确的方法。你应该先使用 apidoc 来生成项目。之后添加的所有类和模块都应该手动加入文档,或者通过再次调用 apidoc 来添加(不过如果你对最初生成的项目进行了自定义,就不应该这样做)。

比如,下面这个指令会把一个新模块及其成员递归地添加到页面中:

.. automodule:: foo.bar
   :members:
   :undoc-members:

这并不像 JavaDoc 那样自动化,但在某些情况下,至少对文档有一些控制权也是更好的。

另外,最好使用 make html 而不是你现在用的其他方法,因为它会生成一些索引之类的东西。我不太记得具体情况,但我可以肯定的是,当你用 bare Sphinx 脚本时,有些内容是不会生成的。

撰写回答