我正在尝试使用python 3在cli中运行漂亮的汤,以便我可以玩转并弄清楚如何最好地使用它。我通过pip安装了它。
pip3 list
显示
Package Version
-------------- -------
beautifulsoup4 4.8.0
但是,当我运行python3 CLI并尝试导入漂亮的汤玩耍时,出现错误:
>>> import beautifulsoup4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'beautifulsoup4'
我也尝试通过CLI导入bs4,但这很奇怪:
>>> import bs4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/derekchapman/Google Drive/Code/Python/p4e/bs4/__init__.py", line 48
'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'<>'You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).'
我已经安装并正在运行python3,如果将bs4导入我的代码中,它将运行正常且没有错误。
答案 0 :(得分:4)
错误消息/Users/derekchapman/Google Drive/Code/Python/
中的路径表明您具有一个已添加到PYTHONPATH
的自定义文件夹。在此文件夹中,您安装了python2
版本的beautifulsoup
,当您import
时,您的python
解释器首先找到此模块,作为环境变量PYTHONPATH
不是特定于python版本的。
您现在有多种选择:
PYTHONPATH
删除该文件夹,但是这可能会破坏您可能首先添加了该文件夹的python2
代码beautifulsoup4
,但这与第一种方法的警告相同PYTHONPATH
并删除自定义安装的python版本,然后使用虚拟环境管理不同的python版本和模块安装答案 1 :(得分:1)
根据docs,您应该以这种方式导入bs4:
from bs4 import BeautifulSoup
然后您可以使用以下行来初始化汤:
soup = BeautifulSoup('<html></html>', 'html.parser')
请注意,第一个参数是作为字符串的HTML文档。