ImportError: cannot import name *
挡你碰到这个问题的时候,你来看我的贴,恭喜你,找对人了。
解决方案一:
最近在用Python程序解析网页的时候,使用BeautifulSoup库( 版本4需 from bs4 import BeautifulSoup),在安装正确后,运行写好的文件时,总是出现 ImportError: cannot import name BeautifulSoup,一开始以为是搜索路径的问题,用sys.path查看搜索路径,包含bs4库的路径。
最后发现问题是,在执行文件的当前目录下,有一个名为bs4.py(当时测试bs4模块用的)的文件,所以当Python运行当前文件时,会先在当前目录下搜索,就会先导入这个叫bs4的文件,然后再去搜索其它路径,导入标准库里面的bs4 。在当前的文件bs4中肯定找不到BeautifulSoup,故不断报错。(警示:切勿在当前搜索路径中,将文件命名为已有库、模块相同的名字)
解决方案二:
百度搜一下这个标题,有很多答案,但是没有一个是从我这角度去解释的。
我这个角度,对于熟练的Python开发人员来说应该是个笑话而已。
不过对于我这个以前只用pandas和numpy写写计算脚本的人来说,实在是让人无语。
from bs4 import beautifulsoup
上面的一行代码是报错的,
from bs4 import BeautifulSoup
这一行是正确的,唯一的差别在于“B”“S”两个字母一定要大写。
这就是学东西的时候痛苦和快乐的源头,发现问题并解决问题。