Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to fix AttributeError: partially initialized module?

I am trying to run my script but keep getting this error:

File ".\checkmypass.py", line 1, in <module>
  import requests 
line 3, in <module>
  response = requests.get(url) 
AttributeError: partially initialized module 'requests' has no attribute 'get' (most likely due to a circular import)

How can I fix it?

like image 479
Karthik Bhandary Avatar asked Jan 16 '20 04:01

Karthik Bhandary


2 Answers

This can happen when there's a local file with the same name as an imported module – Python sees the local file and thinks it's the module.

In my case, I had a file I created in the same folder called requests.py. So my code was actually importing that file and not the actual requests module you install with pip. Then I had another issue with a file I created called logging.py. I renamed both files and the issue was resolved.

like image 184
Eugene Avatar answered Oct 21 '22 06:10

Eugene


Make sure the name of the file is not the same as the module you are importing – this will make Python think there is a circular dependency.

Also check the URL and the package you are using. "Most likely due to a circular import" refers to a file (module) which has a dependency on something else and is trying to be imported while it's already been imported. Once it's correct, you should have something like this:

import requests

r = requests.get("http://google.com")       
print(r.status_code)

# 200
like image 58
Rojin Avatar answered Oct 21 '22 07:10

Rojin