没有名为bs4.element的模块

时间:2015-11-25 11:16:38

标签: python-2.7 bs4

我有一个脚本导入bs4,如下所示:

from bs4 import BeautifulSoup

我没有安装bs4,而是将bs4 beautifulsoup4-4.4.1目录(来自http://www.crummy.com/software/BeautifulSoup)包含在与我的脚本相同的目录中。

当我直接从命令提示符(在Windows 7 VirtualBox VM上)运行此脚本时

python myscript.py

导入工作正常(我的脚本的其余部分也是如此)。

但是我需要从一个更大的框架运行这个脚本,它从一些其他Python代码中调用它作为模块的一部分。我不能对此更具体,因为该框架归我公司所有。

我的脚本被正确调用,直到它进入导入bs4的程度。我收到以下错误:

No module named bs4.element

此代码在与上面相同的Windows 7 VirtualBox VM上运行。我确保bs4 diretcory在PYTHONPATH上(路径为C:\Users\me\path-to-bs4)。我知道找到了bs4,因为当我在bs4/__init__.py的顶部添加一个print语句时,我在输出中看到了结果。

我对导致这个问题的原因感到茫然。有人能指出我正确的方向吗?

我正在使用Python 2.7.6。

1 个答案:

答案 0 :(得分:0)

可能bs4/element.py被路径上某处名为element.py的另一个Python脚本掩盖。

有人会通过更好的解释来改善这个答案,或者验证它是否正确?

在其他SO问题中也提到了这种可能性,我没有意识到它也可以应用于我的情况,因为我们的框架没有其他名为element.py的脚本。但是冲突的脚本也可能是我们导入的外部模块的一部分。

这仍然是可能的,这不是我收到no module named bs4.element错误的原因。

我的解决方法是我使用pip在VM上安装bs4。