安装了 BeautifulSoup 但仍然没有得到名为 bs4 的模块

Posted

技术标签:

【中文标题】安装了 BeautifulSoup 但仍然没有得到名为 bs4 的模块【英文标题】:Installed BeautifulSoup but still get no module named bs4 【发布时间】:2018-07-07 15:27:14 【问题描述】:

我使用的是 Jupyter 笔记本、Python 3.5 和虚拟环境。

在我的虚拟环境中我做了:

(venv) > pip install BeautifulSoup4

这似乎运行良好 b/c 终端输出是:

Downloading beautifulsoup4-4.6.0-py2-none-any.whl (86kB)
  100% |████████████████████████████████| 92kB 297kB/s 
Installing collected packages: BeautifulSoup4
Successfully installed BeautifulSoup4-4.6.0

但是当我运行我的 Jupyter 笔记本时,我得到:

ImportError                               Traceback (most recent call last)
<ipython-input-1-5fe69888b1a1> in <module>()
      5 from itertools import groupby
      6 import pickle
----> 7 import bs4
      8 import matplotlib.pyplot as plt
      9 get_ipython().run_line_magic('matplotlib', 'inline')

ImportError: No module named 'bs4'

而且我无法将import bs4 更改为from bs4 import BeautifulSoup,这是我在其他 SO 帖子中看到的 b/c 它是只读的,我不应该这样做

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,bs4 与 Jupyter Lab 一起安装在我的虚拟环境中。 Jupyter 会抛出 ModuleNotFound 错误,但如果我在 Visual Studio Code 中打开笔记本并选择 .venv 作为解释器,它就可以工作。

我通过从虚拟环境中卸载并改用sudo apt-get install python3-bs4 安装来让它在 Jupyter Lab 中工作。

【讨论】:

【参考方案2】:

由于您使用的是 Python 3,我认为您需要这样做

pip3 install BeautifulSoup4

对于 Python 2 包,只需 pip install。

其他需要检查的事项:

首先确保在 virtualenv 中运行 BeautifulSoup 安装,并在 virtualenv 中运行 python3 提示符或 Jupyter notebook。如果您在根环境中进行了安装,并且笔记本在您的 virtualenv 中运行,反之亦然,您的 site-packages 目录可能不匹配。

通过在命令提示符下键入 pip3 list 并注意它出现在列表中,确保您的包确实已安装。

检查您的 Jupyter 笔记本是否确实在运行 Python 3.5 内核(浏览器窗口的右上角)

检查安装包的路径是否在你的 sys.path 中

打开 Python3 提示符或在 Jupyter 中运行

import sys
print (sys.path)

【讨论】:

我不认为这是问题 b/c 我已经尝试过并得到:Requirement already satisfied: BeautifulSoup4 in /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages 我认为它安装了错误的(Python2)包。尝试删除它并使用 pip3 重新安装。它正在查找包,但无法从 Python 3 virtualenv 导入 好的,我做了pip uninstall BeautifulSoup4pip3 uninstall BeautifulSoup4pip3 uninstall bs4。然后我做了pip3 install BeautifulSoup4,终端说Collecting BeautifulSoup4 Using cached beautifulsoup4-4.6.0-py3-none-any.whl Installing collected packages: BeautifulSoup4 Successfully installed BeautifulSoup4-4.6.0,但它仍然无法正常工作:( import bs4 仍然失败?也从 bs4 导入 BeautifulSoup ?后者至少应该工作。还要执行 pip3 list 并确保它确实在包列表中。如果失败,您可能需要使用 setup.py 从源代码安装 没关系!我想你已经走到了尽头! b/c 当我将bs4 文件夹和beautifulsoup 文件夹从/Library/Frameworks/Python.framework/Versions/3.5/lib/python‌​‌​3.5/site-packages 复制并粘贴到/Users/.../venv/lib/python3.5/site-packages 时,该导入语句现在有效。但是现在我在不同的包上遇到了相同的导入错误。所以看来你说的是对的。但是我在终端上感到困惑,我看到(venv) &gt;,所以我觉得我应该安装在我的venv 中,所以我不确定为什么我不这样做

以上是关于安装了 BeautifulSoup 但仍然没有得到名为 bs4 的模块的主要内容,如果未能解决你的问题,请参考以下文章

如何解决'连接中止'。使用BeautifulSoup在Python中出错

我已经使用 PartitionKey 注释声明了主键,但仍然得到 Entity Order 没有声明主键

为啥我在 Python 中使用 BeautifulSoup 得到“'ResultSet' 没有属性 'findAll'”?

我已经 pip 安装了 pydub 但仍然没有工作

为什么BeautifulSoup库只忽略一个特定的元素?

Windows下安装BeautifulSoup