703
votes

Whenever I try to import requests, I get an error saying No module Named requests.

import requests

The error I get:

File "ex2.py", line 1, in <module>
    import requests
ImportError: No module named requests
27
Did you install requests, using pip or easy_install?Thomas Orozco
I get same issue, I installed via pipDavid Crook
just to note, I only get the issue from within Spyder, but not the cmd prompt.David Crook
I get the same result. pip3 reports "Requirement already satisfied:..."Matt
For me, it turned out to be a conflict with multiple installations of python. For instance, on my mac, somehow I've acquired python AND python2.7 in /usr/bin, which do not symlink to the same installation. Though pip, apparently, is installing modules for python2.7. Thus, python is not seeing those modules. Using python2.7, everything is working. I suppose I need to clean up my environment a bit.Sean Novak

27 Answers

863
votes

Requests is not a built in module (does not come with the default python installation), so you will have to install it:

OSX/Linux

Use $ pip install requests (or pip3 install requests for python3) if you have pip installed. If pip is installed but not in your path you can use python -m pip install requests (or python3 -m pip install requests for python3)

Alternatively you can also use sudo easy_install -U requests if you have easy_install installed.

Alternatively you can use your systems package manager:

For centos: yum install python-requests For Ubuntu: apt-get install python-requests

Windows

Use pip install requests (or pip3 install requests for python3) if you have pip installed and Pip.exe added to the Path Environment Variable. If pip is installed but not in your path you can use python -m pip install requests (or python3 -m pip install requests for python3)

Alternatively from a cmd prompt, use > Path\easy_install.exe requests, where Path is your Python*\Scripts folder, if it was installed. (For example: C:\Python32\Scripts)

If you manually want to add a library to a windows machine, you can download the compressed library, uncompress it, and then place it into the Lib\site-packages folder of your python path. (For example: C:\Python27\Lib\site-packages)

From Source (Universal)

For any missing library, the source is usually available at https://pypi.python.org/pypi/. You can download requests here: https://pypi.python.org/pypi/requests

On mac osx and windows, after downloading the source zip, uncompress it and from the termiminal/cmd run python setup.py install from the uncompressed dir.

(source)

85
votes

It's not obvious to me which version of Python you are using.

If it's Python 3, a solution would be sudo pip3 install requests

72
votes

To install requests module on Debian/Ubuntu for Python2:

$ sudo apt-get install python-requests

And for Python3 the command is:

$ sudo apt-get install python3-requests

30
votes

This may be a liittle bit too late but this command can be run even when pip path is not set. I am using Python 3.7 running on Windows 10 and this is the command

py -m pip install requests

and you can also replace 'requests' with any other uninstalled library

25
votes

If you are using Ubuntu, there is need to install requests

run this command:

pip install requests

if you face permission denied error, use sudo before command:

sudo pip install requests
24
votes

Brew users can use reference below,

command to install requests:

python3 -m pip install requests

Homebrew and Python

pip is the package installer for Python and you need the package requests.

18
votes

On OSX, the command will depend on the flavour of python installation you have.

Python 2.x - Default

sudo pip install requests

Python 3.x

sudo pip3 install requests
15
votes

In my case requests was already installed, but needed an upgrade. The following command did the trick

$ sudo pip install requests --upgrade
13
votes

On Windows Open Command Line

pip3 install requests
12
votes

I had the same issue, so I copied the folder named "requests" from https://pypi.python.org/pypi/requests#downloadsrequests download to "/Library/Python/2.7/site-packages". Now when you use: import requests, it should work fine.

11
votes

In the terminal/command-line:

pip install requests 

then use it inside your Python script by:

import requests

or else if you want to use pycharm IDE to install a package:

  1. go to setting from File in menu
  2. next go to Python interpreter
  3. click on pip
  4. search for requests package and install it
7
votes

Adding Third-party Packages to the Application

Follow this link https://cloud.google.com/appengine/docs/python/tools/libraries27?hl=en#vendoring

step1 : Have a file by named a file named appengine_config.py in the root of your project, then add these lines:

from google.appengine.ext import vendor

Add any libraries installed in the "lib" folder.

vendor.add('lib')

Step 2: create a directory and name it "lib" under root directory of project.

step 3: use pip install -t lib requests

step 4 : deploy to app engine.

7
votes

Try sudo apt-get install python-requests.

This worked for me.

7
votes

The only thing that worked for me:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip install requests
6
votes

For windows just give path as cd and path to the "Scripts" of python and then execute the command easy_install.exe requests.Then try import requests...

5
votes

If you are using anaconda as your python package manager, execute the following:

conda install -c anaconda requests

Installing requests through pip didn't help me.

4
votes

I have had this issue a couple times in the past few months. I haven't seen a good solution for fedora systems posted, so here's yet another solution. I'm using RHEL7, and I discovered the following:

If you have urllib3 installed via pip, and requests installed via yum you will have issues, even if you have the correct packages installed. The same will apply if you have urllib3 installed via yum, and requests installed via pip. Here's what I did to fix the issue:

sudo pip uninstall requests
sudo pip uninstall urllib3
sudo yum remove python-urllib3
sudo yum remove python-requests

(confirm that all those libraries have been removed)

sudo yum install python-urllib3
sudo yum install python-requests

Just be aware that this will only work for systems that are running Fedora, Redhat, or CentOS.

Sources:
This very question (in the comments to this answer).
This github issue.

4
votes

Python Common installation issues

These commands are also useful if Homebrew screws up your path on macOS.

python -m pip install requests

or

python3 -m pip install requests

Multiple versions of Python installed in parallel?

3
votes

I have installed python2.7 and python3.6

Open Command Line to ~/.bash_profile I find that #Setting PATH for Python 3.6 , So I change the path to PATH="/usr/local/Cellar/python/2.7.13/bin:${PATH}" , (please make sure your python2.7's path) ,then save. It works for me.

3
votes

if you want request import on windows:

pip install request

then beautifulsoup4 for:

pip3 install beautifulsoup4
2
votes

I solved this problem.You can try this method. In this file '.bash_profile', Add codes like alias python=/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7

2
votes

You must make sure your requests module is not being installed in a more recent version of python.

When using python 3.7, run your python file like:

python3 myfile.py

or enter python interactive mode with:

python3

Yes, this works for me. Run your file like this: python3 file.py

2
votes

Facing the same issue but unable to fix it with the above solution, so I tried this way and it worked:-

  1. curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py

  2. sudo python2 get-pip.py

  3. python -m pip install requests

1
votes

My answer is basically the same as @pi-k. In my case my program worked locally but failed to build on QA servers. (I suspect devops had older versions of the package blocked and my version must have been too out-of-date) I just decided to upgrade everything

$ pip install pip-review
$ pip-review --local --interactive
1
votes

In my case it was showing request Requirement already satisfied . so I use.

sudo pip3 install requests
0
votes

If you are using anaconda step 1: where python step 2: open anaconda prompt in administrator mode step 3: cd <python path> step 4: install the package in this location

0
votes

You juste need use command python3 instead python