【问题标题】:BeautifulSoup AttributeError 'collections' has no attribute 'Callable'BeautifulSoup AttributeError 'collections' 没有属性 'Callable'
【发布时间】:2021-11-29 13:09:06
【问题描述】:

我按照所有步骤安装了 beautifulsoup,但仍然出现此错误:

AttributeError: 模块 'collections' 没有属性 'Callable'

我正在使用 python 3.10。

【问题讨论】:

  • 请检查How to Ask。不要发布代码、错误等的图像。复制/粘贴为文本。提供您的代码minimal reproducible example 以及任何相关信息,例如 python 版本。
  • BeautifulSoup 好像还不支持 python3.10。 (在 3.10 中,集合模块中的集合抽象基类的已弃用别名是 removed)。 .降级你的python版本
  • @buran 是的!有用!感谢您的帮助
  • 我有点理解反对意见,但这是个好问题。虽然不是一个纯粹的编程问题,但它是关于编程环境的,所以主题和修复并不明显。如果没有重复我们需要它。我很乐意支持@buran 的回答。我提出了修改建议

标签: python beautifulsoup


【解决方案1】:

得到相同的 AttributeError, 然后在 python lib > collections 文件夹中查看在 3.3 及更高版本中单独制作的 abc(抽象基类)。 因此通过在编辑器中打开 /bs4/elements.py 并替换来解决错误 collections.callable >> to >> collections.abc.callable 因此可以轻松访问可调用属性。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

BeautifoulSoup 不适用于 3.10 重新安装 3.9 小馆

【讨论】:

    【解决方案3】:
    import collections
    collections.Callable = collections.abc.Callable
    

    使用这个!

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
    • 这种黑客攻击对我有用。运行这些代码后调用问题库会为我产生正确的结果。
    • 我的代码是使用这个函数的一个技巧。 (函数移至 abc 子模块)
    猜你喜欢
    • 1970-01-01
    • 2022-06-14
    • 2022-06-26
    • 2022-10-26
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多