'Module object has no attribute 'get' Python error Requests?
Solution 1
You are importing all names from the requests
module into your local namespace, which means you do not need to prefix them anymore with the module name:
>>> from requests import *
>>> get
<function get at 0x107820b18>
If you were to import the module with an import requests
statement instead, you added the module itself to your namespace and you do have to use the full name:
>>> import requests
>>> requests.get
<function get at 0x102e46b18>
Note that the above examples is what I got from my tests in the interpreter. If you get different results, you are importing the wrong module; check if you have an extra requests.py
file in your python package:
>>> import requests
>>> print requests.__file__
/private/tmp/requeststest/lib/python2.7/site-packages/requests/__init__.pyc
You can also test for the name listing provided by the requests
module:
>>> print dir(requests)
['ConnectionError', 'HTTPError', 'Request', 'RequestException', 'Response', 'Session', 'Timeout', 'TooManyRedirects', 'URLRequired', '__author__', '__build__', '__builtins__', '__copyright__', '__doc__', '__file__', '__license__', '__name__', '__package__', '__path__', '__title__', '__version__', '_oauth', 'api', 'auth', 'certs', 'codes', 'compat', 'cookies', 'defaults', 'delete', 'exceptions', 'get', 'head', 'hooks', 'models', 'options', 'packages', 'patch', 'post', 'put', 'request', 'safe_mode', 'session', 'sessions', 'status_codes', 'structures', 'utils']
Solution 2
This is the typical symptom of an unrelated requests.py
(or requests.pyc
) file sitting in your current directory, or somewhere else on the PYTHONPATH
. If this is the case, remove or rename it, as it's shadowing the module you really want to import.
Solution 3
I had the same error.
All I did was save it as requests.py
Then I saved it as some other name. And problem solved.
Solution 4
As already stated, the most common problem is that you have a requests.py
file somewhere in your PYTHONPATH
.
But as the requests module internally uses other modules (e.g. from the standard python library), there might be problems with other filenames as well. For example I had the same problem when I named a script http.py
. In that case the output of print dir(requests)
is correct which makes tracking down the error a bit more difficult...
Solution 5
You have to variants of how to fix this.
import requests
or
r = get('https://github.com/timeline.json')
P.S. First one is preferable
Comments
-
mojians almost 2 years
I just installed the Requests module by using
easy_install
and I tried to run the demo code of this tutorial,import requests payload = {'username': 'xxxx', 'password': 'xxxxx'} r = requests.get('https://github.com/timeline.json')
but I get this error:
AttributeError:
'module' object has no attribute 'get'