I'm working in Python and using Flask. When I run my main Python file on my computer, it works perfectly, but when I activate venv and run the Flask Python file in the terminal, it says that my main Python file has "No Module Named bs4." Any comments or advice is greatly appreciated.
-
1pip3 install BeautifulSoup4 – Asfar Hussain Siddiqui Mar 19 '22 at 21:05
-
Lol, my problem was pipenv installing bs4 with ipython as dev packages and then later reinstalling without including dev. Moving it to prod packages worked. – combinatorist Apr 08 '22 at 22:57
26 Answers
Activate the virtualenv, and then install BeautifulSoup4:
$ pip install BeautifulSoup4
When you installed bs4
with easy_install
, you installed it system-wide. So your system python can import it, but not your virtualenv python.
If you do not need bs4
to be installed in your system python path, uninstall it and keep it in your virtualenv.
For more information about virtualenvs, read this

- 2,313
- 12
- 39
- 67

- 6,822
- 2
- 35
- 41
-
7Imagine (for the example sake) that you're working on a project that requires a specific version of a module. You might also be working on a different project, requiring a **different** version of this module. If each project is located in virtualenvs, you will have two absolutely independent python environments, instead of having a system python environment with two versions of the same module. Keep your system env clean. Work in virtualenvs. – Balthazar Rouberol Aug 02 '12 at 19:58
-
1I cannot install, get error `locale.Error: unsupported locale setting` Do you have any idea ? – questionasker May 01 '17 at 01:26
-
1I can't truly guess without a traceback, but have a look at http://stackoverflow.com/questions/14547631/python-locale-error-unsupported-locale-setting – Balthazar Rouberol May 01 '17 at 09:10
-
Also remember that if you're using a venv, you have to use the python binary _from that venv_. `/usr/bin/python` (on a Mac OS) is wrong; it should be `
/bin/python` – blamblambunny Jun 28 '19 at 13:30 -
For python2.x:
sudo pip install BeautifulSoup4
For python3:
sudo apt-get install python3-bs4

- 17,001
- 22
- 90
- 134
-
3The official site `crummy.com` failed to provide `python3-bs4` package name. – Suraj May 24 '16 at 08:41
-
2
Just tagging onto Balthazar's answer. Running
pip install BeautifulSoup4
did not work for me. Instead use
pip install beautifulsoup4

- 6,822
- 2
- 35
- 41

- 421
- 4
- 7
pip3 install BeautifulSoup4
Try this. It works for me. The reason is well explained here..

- 961
- 1
- 11
- 23
I have been searching far and wide in the internet.
I'm using Python 3.6 and MacOS. I have uninstalled and installed with pip3 install bs4
but that didn't work. It seems like python is not able to detect or search the bs4
module.
This is what worked:
python3 -m pip install bs4
The -m
option allows you to add a module name.

- 343
- 4
- 14
It is so annoying to find the answer has nothing to do with BeautifulSoup. To the linux users, be vary of running the command 'python', version 2 exits and you may have forgotten to change the bash file alias of python. And so you might have created the virtual environment using 3 with
python3 -m venv .venv
So, to install things, go with
python3 -m pip install beautifulsoup4
not
pip install beautifulsoup4
Things get installed in different versions and you scratch your head as to what is going on.

- 329
- 3
- 16
I will advise you to uninstall the bs4 library by using this command:
pip uninstall bs4
and then install it using this command:
sudo apt-get install python3-bs4
I was facing the same problem in my Linux Ubuntu when I used the following command for installing bs4 library:
pip install bs4

- 1,371
- 13
- 15
If you are using Anaconda for package management, following should do:
conda install -c anaconda beautifulsoup4

- 4,495
- 3
- 42
- 60
-
1The option "-c anaconda" is the default, so "conda install beautifulsoup4" does the same and is easier to memorize :-) – PatrickT Apr 29 '20 at 23:56
I did what @rayid-ali said, except I'm on a Windows 10 machine so I left out the sudo. That is, I did the following:
python3 -m pip install bs4
and it worked like a pycharm. Worked like a charm anyway.

- 151
- 1
- 6
A lot of tutorials/references were written for Python 2 and tell you to use pip install somename. If you're using Python 3 you want to change that to pip3 install somename.

- 1,183
- 10
- 10
The better method is ("-U" : Upgrade all package(s) to the newest available version.) :
$ python3 -m pip install -U pip && python3 -m pip install -U bs4
or install from apt (Debian, Ubuntu, Mint, etc.) :
$ sudo apt install python3-bs4

- 435
- 4
- 5
In my case, the when do
pip install beautifullsoap4
always gets installed to my python3.9 package where my
python3 --version
gave the output as Python 3.10.6
I fixed the issue of pip3 install by upgrading the pip and pointing correctly to 3.10
instead of 3.9
Then everything worked as expected

- 981
- 10
- 22
You might want to try install bs4 with
pip install --ignore-installed BeautifulSoup4
if the methods above didn't work for you.

- 41
- 1
- 6
Try reinstalling the module OR Try installing with beautiful soup with the below command
pip install --ignore-installed BeautifulSoup4

- 5,583
- 3
- 15
- 32
Addendum to the original query: modules.py
help('modules')
$python modules.py
It lists that module bs4 already been installed.
_codecs_kr blinker json six
_codecs_tw brotli kaitaistruct smtpd
_collections bs4 keyword smtplib
_collections_abc builtins ldap3 sndhdr
_compat_pickle bz2 lib2to3 socket
Proper solution is:
pip install --upgrade bs4
Should solve the problem.
Not only that, it will show same error for other modules as well. So you got to issue the pip command same way as above for those errored module(s).

- 165
- 4
In case you are behind corporate proxy then try using following command
pip install --proxy=http://www-YOUR_PROXY_URL.com:PROXY_PORT BeautifulSoup4

- 6,941
- 17
- 58
- 102
One more solution for PyCharm
:
Go to File -> Settings -> Python Interpreter
, click on plus
sign and find beautifulsoup4
.
Click install
.

- 179
- 1
- 9
I also experienced this problem with Python 3
. In my case I was able to solve it by running:
$ pip3 install BeautifulSoup4
Instead of:
$ pip install BeautifulSoup4

- 574
- 6
- 6
You will need to have pip in your PATH environment variable. If you don't have it then use this link: python -m pip install beautifulsoup4
This worked for me. Hopefully, it works for you too.

- 581
- 2
- 3
After reading all the answers, what worked for me was adding the --clean
option with pyinstaller
.
Example:
pyinstaller --onefile --console --clean --name Email_Parser main.py
What I tried and did not work:
- Deleting and recreating the virtual environment
python -m pyinstaller
- Installing pyinstaller in the virtual environment

- 13,077
- 10
- 22
- 49

- 31
- 3