我试图使用美丽的汤,但是python内核无法在jypter中找到它。运行时:
!pip3 list
!pip3 install BeautifulSoup4
from bs4 import BeautifulSoup
我收到这个错误:
Package Version
--------------- -------
beautifulsoup4 4.9.3
bs4 0.0.1
numpy 1.20.1
pandas 1.2.3
pip 21.0.1
python-dateutil 2.8.1
pytz 2021.1
setuptools 53.0.0
six 1.15.0
soupsieve 2.2
wheel 0.36.2
Requirement already satisfied: BeautifulSoup4 in /usr/local/lib/python3.9/site-packages (4.9.3)
Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.9/site-packages (from BeautifulSoup4) (2.2)
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-11-c89f195c7568> in <module>
1 get_ipython().system('pip3 list')
2 get_ipython().system('pip3 install BeautifulSoup4')
----> 3 from bs4 import BeautifulSoup
4 print("scapy time")
5 for url in stillAlive:
beautiful soup也通过pip安装在jupyter之外
Jupiter笔记本没有指向正确的pip包。为了解决这个问题,我把这个放在我的代码的顶部:
import sys
sys.path.append("/usr/local/lib/python3.9/site-packages")
我认为问题是与bs4包:卸载bs4,再试一次。它与beautifulsoup4重叠,因此您将得到一个错误。
我想这是虚拟环境的问题。我也有同样的问题,想分享一个解决方案。
解决方案:确保在虚拟环境中运行jupyter notebook时。应该安装jupyter notebook和BeautifulSoup。如果缺少它们,则现有环境中的其中一个将无法工作。这会引起混乱,因为默认的jupyter笔记本可以在任何虚拟环境中启动,即使它没有安装在当前的工作环境中。
例如:
假设默认包pip列表:
Package Version
-------------------- -----------
argon2-cffi 21.3.0
argon2-cffi-bindings 21.2.0
asttokens 2.0.5
attrs 22.1.0
backcall 0.2.0
notebook 6.4.12
这是venv(虚拟环境)(缺失notebook
):
Package Version
-------------------- -----------
argon2-cffi 21.3.0
argon2-cffi-bindings 21.2.0
asttokens 2.0.5
attrs 22.1.0
backcall 0.2.0
beautifulsoup4 4.11.1
当我在venv中运行jupyter notebook时,它从默认安装的包运行。因此,它给了我以下错误:
from bs4 import BeautifulSoup
Traceback (most recent call last):
File "/Users/lyons/Documents/scrape/scrape.py", line 2, in <module>
from bs4 import BeautifulSoup
ModuleNotFoundError: No module named 'bs4'
安装完成后,在venv中打开jupyter笔记本。它修复了