i just installed the Requests module by using 'easy_insatll' and i tried to run the demo code of this tutrorial,
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'
any idea? thanks
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.
As already stated, the most common problem is that you have a
requests.py
file somewhere in yourPYTHONPATH
.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 ofprint dir(requests)
is correct which makes tracking down the error a bit more difficult...I made a mistake of the test file's name was requests.py. So, when i import requests.py, it's not what I want to import. Then, I renamed the test file's name. It works!!!
This could be an user error if you're working with a framework like Django that has request objects as well.
I constantly get confused by Django's:
and
request
's:That was my problem, anyway. Bracing for down votes.
You have to variants of how to fix this.
or
P.S. First one is preferable
I happened the same issue on Mac and Ubuntu. I want to test the requests command. I used the requests/ folder name and the requests.py filename on Mac. But Python shows the "ImportError: cannot import name get" message. Therefore, I have renamed the requests/ folder and the requests.py file to test-requests/ and test-requests.py. It still got the message. I checked the folder as below:
I saw that the folder has the requests.pyc file. So I deleted the requests.pyc file in the folder. Then, I executed the below test script. it's working now.