ImportError:仅在 django 中没有名为“bs4”的模块
Posted
技术标签:
【中文标题】ImportError:仅在 django 中没有名为“bs4”的模块【英文标题】:ImportError: No module named 'bs4' in django only 【发布时间】:2017-02-19 17:16:06 【问题描述】:同样的问题被问了很多次,但我找不到解决办法。
使用 pip 安装软件包后,我可以将其导入 python 控制台或 python 文件,它可以按预期工作。
当我尝试在 django 中包含相同的包时,它给出了import error
。
我是否需要修改settings.py
文件或我需要添加的任何要求?我在虚拟环境的帮助下驾驶 django。
例如:
我正在使用BeautifulSoup
,我正在尝试导入from bs4 import BeautifulSoup
,我收到错误ImportError: No module named 'bs4'
这个错误只出现在 django 中。我无法弄清楚为什么会这样。
附上截图供参考。
1. python 控制台 - 没有显示错误
2。 django 控制台- 导入错误
很抱歉,因为很难阅读控制台,但我可以包含的任何其他内容将帮助我让自己更清楚,我们将不胜感激。
【问题讨论】:
复制粘贴输出而不是添加屏幕截图。屏幕截图是邪恶的(难以阅读、可访问性问题、无法索引文本以供搜索) 没有输出可显示。这只是一个导入错误。 应该是复制粘贴的错误。正如 Jérôme 所说,屏幕截图是邪恶的。 屏幕截图只是为了验证 python2 和 python3 都没有显示导入错误,但 django 有。也许从 django 的错误中,有些人可能会理解我无法理解的问题 为什么要投反对票?我应该问这个问题有多好? 【参考方案1】:您没有显示您网站的代码或您运行的命令(以及您输入的 URL,如果有)来触发此问题。几乎可以肯定,命令行上的 Python 环境和在 Django 中运行的环境之间存在一些差异。
您是否使用虚拟环境?如果是这样,则应将依赖项分别添加到每个环境中。您是否从不同的工作目录进行操作? Python 通常在sys.path
的某个位置拥有当前目录,因此如果您更改了目录,您可能会以这种方式使bs4
不可用。
在交互式 Python 提示符下,尝试
import bs4
bs4.__file__
这会告诉你 bs4
是从哪里导入的,因此可能会告诉你为什么它对 Django 不可用。
【讨论】:
该文件已经存在于 python2 和 python3 的站点包中。之前使用pip
下载的所有软件包都可以使用,除了这个。我有什么明显的遗漏吗?
尝试从两种环境中打印sys.path
,看看hte 差异是否会导致您的问题。以上是关于ImportError:仅在 django 中没有名为“bs4”的模块的主要内容,如果未能解决你的问题,请参考以下文章
Django:ImportError:没有名为'corsheaders'的模块
Django - ImportError:没有名为应用程序的模块
Python3.7 ImportError:没有名为“django”的模块
ImportError:没有名为 redis_cache 的模块