【问题标题】:Sphinx error on Readthedocs: "TypeError: 'bool' object has no attribute '__getitem__'"Readthedocs 上的 Sphinx 错误:“TypeError:'bool' 对象没有属性 '__getitem__'”
【发布时间】:2016-02-24 13:39:39
【问题描述】:

Readthedocs 上的文档构建失败,出现一个很难理解的 Sphinx 错误:

Exception occurred:
  File "/home/docs/checkouts/readthedocs.org/user_builds/fluidimage/envs/latest/local/lib/python2.7/site-packages/sphinx/ext/viewcode.py", line 61, in has_tag
  if entry is None or entry[0] != code:
TypeError: 'bool' object has no attribute '__getitem__'

完整日志见https://readthedocs.org/projects/fluidimage/builds/3758665/

我发现其他项目也遇到过同样的问题 (link to the google search),但这并不能帮助我理解发生了什么。

这个错误是什么意思?怎么解决?

【问题讨论】:

  • 在此处查看 3.4:docs.python.org/2/reference/datamodel.html。我认为编译器将条目解释为布尔值,因此您无法以这种方式访问​​它
  • 显然它期望entryNone 或一个序列(列表、元组、字符串等),但这不是它所得到的。如果没有minimal reproducible example,我们无法告诉您原因。
  • 很难获得具有此类问题的 MCVE。我很高兴它得到了解决,我希望这个问题和答案可以帮助那些遇到同样问题的人,即使没有任何解释。

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


【解决方案1】:

这个问题好像和this sphinx issue有关。虽然 sphinx 已自我更新以允许将 autodoc_default_options 定义为 True,但可能是 readthedocs 使用的是旧版本的 sphinx 或由于某种原因无法接受这些值。将 autodoc_default_options 字典中的值更改为 None 允许构建继续。

例子:

autodoc_default_options = {
    'members': None, 'undoc-members': None,
    'private-members': None, 'show-inheritance': None
}

【讨论】:

    【解决方案2】:

    所以我的问题的实际答案可以是

    • 等一下
    • 提交修改几乎没有任何内容
    • 再次构建...

    Sphinx-Readthedocs 错误消失了。至少这是发生在我身上的事情。

    【讨论】:

    • 你不妨删除这个答案,因为它没用
    • 你不妨删除这条评论,因为它没用:-)
    猜你喜欢
    • 2012-12-04
    • 2012-10-15
    • 2014-01-16
    • 2017-02-27
    • 2018-01-28
    • 2014-06-10
    • 2012-10-16
    • 2015-11-04
    • 1970-01-01
    相关资源
    最近更新 更多