ImportError:没有名为bs4的模块(BeautifulSoup)


138

我正在使用Python并使用Flask。当我在计算机上运行我的主Python文件时,它可以正常运行,但是当我激活venv并在终端中运行Flask Python文件时,它表示我的主Python文件具有“没有名为bs4的模块”。任何意见或建议,不胜感激。


3
...您是否在virtualenv中安装了bs4?
科林·邓克劳

1
不,我正在运行ubuntu并使用“ easy_install beautifulsoup4”
哈里特

Answers:


215

激活virtualenv,然后安装BeautifulSoup4:

$ pip install BeautifulSoup4

当您安装bs4使用easy_install,您在系统范围内进行了安装。因此,您的系统python可以导入它,但您的virtualenv python不能导入。如果您不需要bs4在系统python路径中安装,请卸载它并将其保留在virtualenv中。

有关virtualenvs的更多信息,请阅读此内容


4
想象一下(出于示例的原因)您正在开发一个需要特定版本模块的项目。您可能也正在从事其他项目,需要该模块的不同版本。如果每个项目都位于virtualenvs中,那么您将拥有两个绝对独立的python环境,而不是具有带有相同模块的两个版本的系统python环境。保持系统环境清洁。在virtualenvs中工作。
Balthazar Rouberol,2012年

1
我无法安装,出现错误locale.Error: unsupported locale setting您有任何想法吗?
coderInrRain

我不能真正猜测没有回溯,但看看stackoverflow.com/questions/14547631/...
巴尔萨泽Rouberol

还请记住,如果您使用的是venv,则必须使用该venv中的python二进制文件。/usr/bin/python(在Mac OS上)是错误的;应该是<your path to your venv>/bin/python
joemadeus

我必须退出()Python,以便PIP安装可以工作:)
Eoin

54

对于python2.x

sudo pip install BeautifulSoup4

对于python3

sudo apt-get install python3-bs4

3
官方站点crummy.com未能提供python3-bs4软件包名称。
苏拉杰

1
对于python 3也sudo pip install BeautifulSoup4有效
ishandutta2007 '19

13

只需标记Balthazar的答案即可。跑步

pip install BeautifulSoup4

没有为我工作。改为使用

pip install beautifulsoup4


5

如果您将Anaconda用于软件包管理,则应执行以下操作:

conda install -c anaconda beautifulsoup4


1
选项“ -c anaconda”是默认选项,因此“ conda install beautifulsoup4”功能相同,更容易记住:-)
PatrickT

5

如果您使用Pycharm,请转到preferences - project interpreter - install bs4

如果尝试安装BeautifulSoup,它将仍然显示没有名为的模块bs4


4

我建议您使用以下命令来卸载bs4库:

pip卸载bs4

然后使用以下命令进行安装:

须藤apt-get install python3-bs4

当我使用以下命令安装bs4库时,在Linux Ubuntu中遇到了相同的问题:

点安装bs4





1

我做了@ rayid-ali所说的,除了我在Windows 10机器上,所以我省略了sudo。也就是说,我做了以下工作:

python3 -m pip install bs4

它就像一个pycharm。无论如何都像魅力一样工作。


0

最简单的是使用easy_install。

easy_install bs4 

如果pip失败,它将起作用。


0

很多针对Python 2编写的教程/参考资料都告诉您使用pip install somename。如果您使用的是Python 3,则要将其更改为pip3 install somename。




0

原始查询的附录:modules.py

help('modules')

$python modules.py

它列出了已经安装的模块bs4。

_codecs_kr          blinker             json                six
_codecs_tw          brotli              kaitaistruct        smtpd
_collections        bs4                 keyword             smtplib
_collections_abc    builtins            ldap3               sndhdr
_compat_pickle      bz2                 lib2to3             socket

正确的解决方案是:

pip install --upgrade bs4

应该解决问题。

不仅如此,其他模块也会显示相同的错误。因此,对于那些错误的模块,您必须以与上述相同的方式发出pip命令。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.