AttributeError: module 'shodan' has no attribute 'Shodan'

3.3k Views Asked by At

I need to perform a BULK whois query using shodan API.

I came across this code

import shodan
api = shodan.Shodan('inserted my API-KEY- within single quotes')
info = api.host('8.8.8.8')

After running the module i get the following error:

Traceback (most recent call last):
File "C:/Users/PIPY/AppData/Local/Programs/Python/Python37/dam.py", line 1, in
import shodan
File "C:/Users/PIPY/AppData/Local/Programs/Python/Python37\shodan.py", line 2, in
api = shodan.Shodan('the above insereted API KEY')
AttributeError: module 'shodan' has no attribute 'Shodan'

I'm learning python and have limited scripting/programming experience.

Could you please help me out?

Cheers

3

There are 3 best solutions below

0
On

I had this same issue but after renaming my file as something different than shodan.py, I had to also delete the compiled class shodan.pyc to avoid the error.

Also, if you have more than one version of python installed, i.e. python2 and python3, use

python -m pip install shodan instead of pip install shodan, to ensure that you are installing the library in the same version of shodan that you are using to execute your script.

If you are executing your script with python3 shodan_test.py then use python3 -m pip install shodan

1
On

You seem to have dam.py and shodan.py – Python defaults to importing from the module directory, so the installed shodan package gets masked.

Try renaming shodan.py to e.g. shodan_test.py (and of course fixing up any imports, etc.).

0
On

I have solved the issue by re-installing the shodan module under the C:\Users\PIPY\AppData\Local\Programs\Python\Python37\Scripts>pip install shodan

Thank you for the help AKX.