如何解决ImportError:无法从“ html.parser”导入名称“ HTMLParseError”?

时间:2019-08-25 22:07:29

标签: python-3.x beautifulsoup importerror

我正在使用python 3.7和beautifulsoup4-4.8.0做一个项目。我找到了可能不是正确的解决方案来修复ImportError:无法从'html.parser'导入名称'HTMLParseError'。如果您可以帮助我进行验证,将不胜感激!

*******************问题********************

我输出的原始错误是为了说明我做了什么以及为什么这样做。

回溯(最近通话最近):   文件“ ./Youtube.py”,第1行,在     从bs4导入BeautifulSoup   在第29行的“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/bs4/init.py”文件中     从.builder导入builder_registry   在第294行中的文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/bs4/builder/init.py”     来自。导入_htmlparser   在第7行中输入文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/bs4/builder/_htmlparser.py”     从html.parser导入( ImportError:无法从“ html.parser”(/ Library / Frameworks / Python.framework / Versions / 3.7 / lib / python3.7 / html / parser.py)中导入名称“ HTMLParseError”

***************我的解决方案*****************

在错误输出中,它表明我们无法从文件html.parser导入“ HTMLParseError”,而该文件应在该文件中实现。因此我进行了研究(https://docs.python.org/3.4/library/html.parser.html),发现HTMLParseError自3.3版起已弃用,并在3.5版中被删除:事实证明,解析器从未使用默认的非严格模式(该模式我相信这是我正在使用的)。

SOOOOO基本上,我只是删除了从文件(/Library/Frameworks/Python.framework/Versions/3.7/lib/python3)中的“ html.parser”导入“ HTMLParseError”的那一行代码.7 / site-packages / bs4 / builder / _htmlparser.py)

瞧瞧!它消除了错误。我不知道这在技术上是否正确。如果有人可以帮助我验证此解决方案,将不胜感激!

2 个答案:

答案 0 :(得分:1)

$ pip install beautifulsoup4 --force-reinstall
$ python3 -m pip install beautifulsoup4 --force-reinstall

答案 1 :(得分:0)

我能够通过运行以下命令来解决我的问题。

character

我的问题是我没有使用bs4的py3兼容版本。因为bs4已安装distutils,所以我不得不使用—ignore-installed标志来解决我的错误:无法卸载“ beautifulsoup4”。这是一个distutils安装的项目...

感谢user2357112的评论!