How to fix AttributeError: partially initialized module?

PythonPython 3.x

Python Problem Overview


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?

Python Solutions


Solution 1 - Python

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.

Solution 2 - Python

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

Solution 3 - Python

In my particular case, this resulted from the following sequence of commands when installing vaex:

conda install pydantic[dotenv]
# This failed: "import vaex" so retried pip.
pip install pydantic[dotenv]
# On "import vaex", got error in OP.

And the fix:

conda uninstall pydantic[dotenv]
pip install pydantic[dotenv] --force-reinstall
# Now "import vaex" worked perfectly.

Solution 4 - Python

I was also getting the same error. What worked for me is: I deleted the virtual environment and did fresh installation. In my case some modules were installed repeatedly and I was able to see them in the venv/Lib folder which was causing the issue.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKarthik BhandaryView Question on Stackoverflow
Solution 1 - PythonEugeneView Answer on Stackoverflow
Solution 2 - PythonRojinView Answer on Stackoverflow
Solution 3 - PythonContangoView Answer on Stackoverflow
Solution 4 - Pythondi_gupt10View Answer on Stackoverflow