我正在尝试使用BeautifulSoup,尽管使用了import语句:
from bs4 import BeautifulSoup
我收到错误:ImportError: cannot import name BeautifulSoup
import bs4
不会出错。
我还尝试了import bs4.BeautifulSoup
并导入了bs4并使用以下内容创建了一个BeautifulSoup对象:bs4.BeautifulSoup()
任何指导都将不胜感激。
答案 0 :(得分:8)
问题是我将文件命名为HTMLParser.py
,并且该名称已在bs4模块中的某处使用过。
感谢所有帮助过的人!
答案 1 :(得分:5)
确保运行脚本的目录中没有名为bs4.py的文件名。
答案 2 :(得分:3)
我通过安装beautifulsoup4解决了它,“4”是必不可少的。
pip install beautifulsoup4
答案 3 :(得分:3)
在尝试解决ImportError: cannot import name 'BeautifulSoup4'
后,我发现该软件包实际上被称为BeautifulSoup
,因此导入应为:
from bs4 import BeautifulSoup
答案 4 :(得分:1)
我遇到了这个问题的变种,并发布消息以使他人受益。
我将我的Python示例脚本命名为bs4.py
在此脚本中,每当尝试使用以下命令导入bs4时:
from bs4 import BeautifulSoup
,抛出了ImportError
,但令人困惑的(对我而言)导入是在同一venv环境中从交互式shell完美进行的。
重命名Python脚本后,导入将按预期进行。该错误是由于Python尝试从本地目录而不是使用bs4的系统副本导入自身而引起的
答案 5 :(得分:1)
将 bs4 和 beautifulsoup4-4.6.0.dist-info 从 C:\ python \ Lib \ site-packages 复制到本地项目目录。它为我工作。在这里,python实际上是在本地目录中查找该库,而不是在该库的安装位置!
答案 6 :(得分:1)
bs4 和 beautifulsoup4 文件夹可能位于 site-packages文件夹中。因此,复制bs4中的BeautifulSoup4文件夹,然后尝试以下代码。它为我工作。
#include<iostream>
using namespace std;
int main(){
const int size = 20;
int *num = new int[size];
char answer;
int count = 1;
while(true){
cout<<"ENTER NUMBER: \n";
cin>>num[count-1];
cout<<"TRY AGAIN? ";
cin>>answer;
switch(answer){
case 'y':
count++;
system("cls");
break;
default:
cout<<"INPUT HISTORY: \n";
for(int i=0;i<=count-1;i++){
cout<<num[i]<<endl;
}
count++;
}
}
delete [] num;
return 0;
}
由于您是从bs4导入BeautifulSoup的,因此在bs4中没有BeautifulSoup文件夹。这就是为什么它显示from bs4 import BeautifulSoup
。
答案 7 :(得分:0)
即使在安装了所有必需的模块(包括pip
安装bs4
之后,我也一开始就遇到了此类错误(如果已安装,则无需安装beautifusoup4 | BeautifulSoup4
通过pip
或bs4
本身附带的其他任何地方)
解决方案:只需转到安装了Python文件C:\python\Lib\site-packages
然后复制bs4
和beautifulsoup4-4.6.0.dist-info
文件夹,并将其粘贴到保存了工作项目的项目文件夹中。
答案 8 :(得分:0)
可能的原因之一:如果您安装了多个python版本,并且假设您使用pip3安装了beautifulsoup4,则只有在python3 shell中运行它时,才能将其导入。
答案 9 :(得分:0)
软件包没有问题,只需要复制 bs4 并 beautifulsoup4-4.6.0.dist-info 进入您的项目目录
答案 10 :(得分:0)
当我使用
pip3 install beautifulsoup4
代替
pip install beautifulsoup4
它返回所有要求都已经满足但我再次运行它并且它起作用了,我使用的是使用 python 3.8.10 的 virtualenv,我真的不知道它背后的逻辑但是嘿它起作用了。
答案 11 :(得分:-1)
解决的最佳方法是,在创建解释器时,选择系统(/usr/local/bin/python3.7)上的全局python路径。 确保在pycharm shell中,python --version显示为3.7。它不应该显示2.7