没有名为' beautifulsoup4'在python3中

时间:2018-03-08 09:59:26

标签: python python-3.x beautifulsoup

$ virtualenv test
$ source test/bin/activate
$ pip3 install beautifulsoup4

现在脚本test.py

import urllib.request
import sys
import unittest, time, re

import requests
from bs4 import BeautifulSoup

class Sel(unittest.TestCase):

    def setUp(self):
        self.base_url = "file:///Users/ishandutta2007/Desktop/cars/cars-price-list.html"

    def test_sel(self):
        with urllib.request.urlopen(self.base_url) as url:
            html_source = url.read()
        data = html_source#.encode('utf-8')
        parsed_html = BeautifulSoup(data, 'html.parser')

if __name__ == "__main__":
    unittest.main()

当我运行$python3 test.py

  

文件" test.py",第6行,in       来自bs4 import BeautifulSoup ModuleNotFoundError:没有名为' bs4'

的模块

然后尝试

from beautifulsoup4 import BeautifulSoup
  

文件" test.py",第6行,in       来自beautifulsoup4 import BeautifulSoup ModuleNotFoundError:没有名为' beautifulsoup4'

的模块

要求清楚地显示了两者

$ pip3 freeze > requirements.txt
$ cat requirements.txt 
beautifulsoup4==4.6.0
certifi==2018.1.18
chardet==3.0.4
idna==2.6
requests==2.18.4
urllib3==1.22

6 个答案:

答案 0 :(得分:1)

仅安装BeautifulSoup4而不是bs4BeautifulSoup,然后

执行此操作:

from bs4 import BeautifulSoup

答案 1 :(得分:0)

我会这样做是为了解决这个问题:

在您创建的虚拟环境下的所有这些

$ wget https://pypi.python.org/pypi/beautifulsoup4
$ pip3 install beautifulsoup4-4.6.0-py3-none-any.whl
$ pip3 freeze |grep beautifulsoup4
$ python3
>>> from bs4 import BeautifulSoup

答案 2 :(得分:0)

看起来你不在正确的地方; cd测试然后再试一次。

问题在于:Python使用PYTHONPATH环境变量来查找包,默认情况下包含当前目录。但是,BeautifulSoup4包安装在测试目录下。如果从测试目录启动Python ,它应该能够找到它。

答案 3 :(得分:0)

发现问题,virtualenv安装了python2.7,

pip3 install virtualenv

解决了这个问题。

答案 4 :(得分:0)

我所做的是从thebeautifulsoup4-4.8.0.dist-info删除bs4C:\Users\User\Anaconda3\Lib\site-packages文件夹,然后在命令提示符下再次执行pip install beautifulsoup4。 它对我有用。

答案 5 :(得分:0)

尝试从beautifulsoup4替换为import BeautifulSoup 在

from bs4 import BeautifulSoup

对我有用。