robbie777
robbie777

Reputation: 111

ModuleNotFoundError: No module named 'bs4'

I'm still super new to coding! Trying to learn from online tutorials, but I seem to be stuck on the first step! I think I installed bs4, but it's not showing up in python3, is it installed in the wrong place?

robbie$ sudo -H pip install bs4
Requirement already satisfied: bs4 in /Library/Python/2.7/site-packages
Requirement already satisfied: beautifulsoup4 in /Library/Python/2.7/site-packages (from bs4)
Robbies-MBP:~ robbie$ python3
Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import bs4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'bs4'

Any help would be greatly appreciated :)

Upvotes: 11

Views: 44583

Answers (5)

Diab Junior
Diab Junior

Reputation: 9

I was having the same issue but managed to solve it with custom install script in the code. This tries to import and if it fails, automatically installs it

def safe_import(module):
    try:
        exec(f'import {module}')
        globals()[module] = eval(module)
    except ModuleNotFoundError as err:
        import os
        os.system(f'pip install {module}')
        exec(f'import {module}')
        globals()[module] =  eval(module)

Upvotes: 0

Devjoseph
Devjoseph

Reputation: 61

go to the bottom left of your vs code and select python 3.9.1 64 bit (depending on the version of your python). it'll work.

it works for me

enter image description here

enter image description here

Upvotes: 4

Areeb Soo Yasir
Areeb Soo Yasir

Reputation: 638

Just a quick note but a lot of times when this happens and you are running python3 and you used pip3 to install bs4 or another module but are running two different versions of python3 (eg 3.4 and 3.6). Sometimes just doing a normal update in a distro like CentOS installs a newer version of python, but not the corresponding pip.

Take for example here where a user is running python3.6 but all modules are installed only for python3.4 and there is no pip3.6 available.

http://realtechtalk.com/python_ModuleNotFoundError_No_module_named_bs4_even_though_you_have_the_module-2267-articles

Upvotes: 0

pcampana
pcampana

Reputation: 2701

If you are using python 3 then you shoud use pip 3. In order to install it in ubuntu:

sudo apt install python3-pip

And then use the following command for installing the module bs4:

pip3 install bs4

Upvotes: 5

vallentin
vallentin

Reputation: 26235

Requirement already satisfied: bs4 in /Library/Python/2.7/site-packages

Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)

You have the module installed for Python 2.7, however you're using and trying to import it with Python 3.6.

You have to use pip3 like you use python3.

Upvotes: 18

Related Questions