【问题标题】:beautifulsoup, html5lib: module object has no attribute _basebeautifulsoup,html5lib:模块对象没有属性 _base
【发布时间】:2016-11-21 17:04:32
【问题描述】:

当我更新我的包时,我遇到了这个新错误:

class TreeBuilderForHtml5lib(html5lib.treebuilders._base.TreeBuilder):
AttributeError: 'module' object has no attribute '_base'

我尝试更新beautifulsoup,但没有更多结果。我该如何解决这个问题?

【问题讨论】:

    标签: beautifulsoup html5lib


    【解决方案1】:

    我升级了 beautifulsoup4 和 html5lib,它解决了这个问题。

    pip install --upgrade beautifulsoup4
    pip install --upgrade html5lib
    

    【讨论】:

    • 确认这有助于使 sudo pip install spry 在 2017 年 2 月无错误地正常工作。
    • 我需要--force
    【解决方案2】:

    这是上游包 html5lib 的问题:https://bugs.launchpad.net/beautifulsoup/+bug/1603299 要修复,请强制降级到旧版本:

    pip install --upgrade html5lib==1.0b8

    【讨论】:

      【解决方案3】:

      编辑 2017 年 11 月:看来这不再起作用了

      终于发现,搜索引擎没有抛出任何东西,但它在 beautifulsoup 的问题跟踪器中被引用:https://bugs.launchpad.net/beautifulsoup/+bug/1603299

      它适用于 html5lib v0.9999999(7 个九)

      "html5lib<=0.9999999"
      

      【讨论】:

      • 这也修复了 kaggle-cli 中的一个类似错误
      • (在 W7 上)。不幸的是,我尝试了降级和升级。我还尝试使用 Python 2.7 设置虚拟环境。到目前为止没有任何效果,基本上我坚持使用 beautifulsoup 库
      • 我刚刚克服了这个错误,只是检查了 Pycharm 在我的虚拟环境中使用了错误的解释器。确实在 python idle 和 Powershell 中我没有遇到这样的错误
      • html5lib&lt;=0.9999999 存在安全漏洞,不应再使用。来源:sourceclear.com/registry/security/cross-site-scripting-xss-/…
      • 这是修复它的命令:sudo pip install html5lib==0.9999999
      【解决方案4】:

      @Bhavuk 答案中降级到 html5lib 1.0b8 有效,但会导致漂白剂的版本问题。

      我的解决方案是更改漂白剂版本以与新版本的 html5lib 兼容

      pip install --upgrade bs4
      pip install --upgrade bleach==1.4.2
      pip install --upgrade html5lib==1.0b8
      

      Python 3.5 版

      【讨论】:

      • 对于 anaconda,我做了conda install html5lib==0.9999999,它将漂白剂降级到 1.5.0,但它起作用了
      【解决方案5】:

      同样的问题发生在我身上。我不知道您要做什么,但是当我尝试使用 pd.read_html() 在 pandas 中读取 XML 文件时发生在我身上。

      通过升级所有beautifulsoup4、html5lib 和lxml 解决了这个问题,例如:

      pip install bs4
      pip install html5lib
      pip install lxml
      

      然后重新启动您的 Python 环境,现在它可以工作了。

      【讨论】:

      • 在某些情况下,我需要添加 -U 来升级现有安装,但这对我有用。
      【解决方案6】:

      这个命令为我解决了这个问题:

       sudo pip install html5lib==0.9999999
      

      【讨论】:

        【解决方案7】:

        只需使用此安装html5lib,因为如果您以正常方式安装,则必须使用 python2 进行爬虫。

        sudo pip3 install html5lib==0.9999999
        

        【讨论】:

          【解决方案8】:

          我发现尝试切换版本对我不起作用。最后,基于on this issue,我编辑了~/.local/lib/python3.7/site-packages/bs4/builder/_html5lib.py的相关文件,以达到我的目的。

          【讨论】:

            猜你喜欢
            • 2017-08-18
            • 2017-03-29
            • 2013-02-13
            • 2010-11-18
            • 2019-01-03
            • 2017-05-19
            • 2013-02-01
            • 2018-02-27
            相关资源
            最近更新 更多