在 Python 3.5 中导入 bs4
Posted
技术标签:
【中文标题】在 Python 3.5 中导入 bs4【英文标题】:Importing bs4 in Python 3.5 【发布时间】:2015-04-28 23:44:48 【问题描述】:我已经安装了 Python 3.5 和 Beautifulsoup4。当我尝试导入 bs4 时,出现以下错误。有什么解决办法吗?还是我应该只安装 Python 3.4? 请非常明确 - 我是编程新手。非常感谢!
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python 3.5\lib\sit-packages\bs4\__init__.py", line 30, in <module>
from .builder import builder_registry, ParserRejectionMarkup
File "C:\Python 3.5\lib\sit-packages\bs4\__init__.py", line 308, in <module>
from . import _htmlparser
File "C:\Python 3.5\lib\sit-packages\bs4\_htmlparser.py", line 7, in <module>
from html.parser import (
ImportError: cannot import name 'HTMLParseError'
【问题讨论】:
【参考方案1】:更新:从 4.4.0 开始,BeautifulSoup
与 Python 3.5 兼容。升级:
pip install --upgrade beautifulsoup4
旧答案:
由于对Deprecate strict mode of HTMLParser 问题所做的更改:
问题 #15114:HTMLParser 的严格模式和参数, HTMLParser.error 和 HTMLParserError 异常已被删除。
恐怕beautifulSoup4
目前与 Python 3.5 不兼容。使用 Python 3.4。
【讨论】:
【参考方案2】:更新:BeautifulSoup 4.4.0 已更新为与 python3.5 兼容,因此如果您仍然遇到此问题,pip install --upgrade beautifulsoup4
应该可以解决问题。
【讨论】:
可能是特定于 pip 版本的,尝试pip3.5 install --upgrade beautifulsoup4
否则它将升级 bs4 为您的默认 python 版本(大多数 *nix 上为 2.7)
sudo pip3 install --upgrade beautifulsoup4【参考方案3】:
我已向作者发送了有关此错误的后续信息。如果您想在 Python 3.5a 上安装 BeautifulSoup,我已将源代码的工作补丁上传到 github。
https://github.com/jjangsangy/BeautifulSoup4
您可以使用setup.py
安装它,或者只需将此代码复制并粘贴到终端中。
git clone https://github.com/jjangsangy/BeautifulSoup4 \
&& cd BeautifulSoup4 \
&& python3.5 setup.py install
我在这里假设,由于您正在尝试 3.5a,因此您的 python 解释器已安装为您的 site-packages
目录具有适当的用户权限,因此不需要 sudo 调用。
【讨论】:
感谢您的跟进。我换了python 3.3,一切正常。 @AndyTerra 在这里聚会有点晚了,但这个链接对我有用:github.com/wention/BeautifulSoup4.git以上是关于在 Python 3.5 中导入 bs4的主要内容,如果未能解决你的问题,请参考以下文章