【问题标题】:sphinx autodoc for python doesn't show anything (on readthedocs)python 的 sphinx autodoc 不显示任何内容(在 readthedocs 上)
【发布时间】:2016-11-15 17:48:29
【问题描述】:

我有this python package,我想使用 Sphinx 自动记录。我在每个函数和类中都插入了文档字符串。

我在 ReadTheDocs 上创建了一个帐户,并进行了相应的设置(即,docs/ 目录和 conf.py 文件)。然后,基本上,我几乎尝试了所有方法:autodoc::autofunction::autoclass:: 的每种组合;我尝试使用 same conf.py 文件作为记录 API 的其他包(当然,根据我的情况进行了特定更改);但它只是不起作用,API 页面始终是空的......

【问题讨论】:

  • 如果您访问 RTD 中的构建页面 (https://readthedocs.org/projects/<your-project>/builds/),您会收到任何反馈吗?你是如何生成api.rst 的?我发现这对初始设置很有用:jeffknupp.com/blog/2013/08/16/…
  • 感谢这个非常有用的链接!但是,即使我尝试重现这些步骤并尝试从头开始构建文档,它仍然没有显示任何内容。最糟糕的是,当我运行 makefile 时(使用命令 make html,它没有显示任何特定错误,也没有任何与我要记录的包相关的内容......)。我就是想不通为什么!至于我的api.rst 文件,它只能通过创建第一个文档并插入一些..autoclass:: 指令来生成。不管怎样,谢谢你的回答!
  • 这可能是问题所在,您是否考虑过让 Sphinx 生成文档而不是自己尝试生成文档?

标签: python api python-sphinx read-the-docs autodoc


【解决方案1】:

尝试将其添加到您的 conf.py 中:

########### TRICK FOUND ON SOME TUTORIAL : ADD IN THE MOCK_MODULES ANY EXTERNAL MODULE YOU'RE USING IN YOUR PACKAGE.

import mock

MOCK_MODULES = ['numpy', 'scipy', 'sklearn', 'matplotlib', 'matplotlib.pyplot', 'scipy.interpolate', 'scipy.special', 'math', '__future__', 'toolboxutilities']
for mod_name in MOCK_MODULES:
    sys.modules[mod_name] = mock.Mock()

在 MOCK_MODULES 中,添加您的项目使用的任何单个外部导入。我有完全相同的问题,这解决了它。

同样在 conf.py 中,不要忘记添加:

sys.path.insert(0, os.path.abspath('../..'))

在你的情况下,你已经有了它,但我提到它以防其他有同样问题的人看到我的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多