This question already has answers here:
Importing installed package from script with the same name raises "AttributeError: module has no attribute" or an ImportError or NameError
(2 answers)
Closed 4 years ago.
I know this question has been asked around quite a few times but none of the solutions have helped me out so far.
I am getting the following error whenever I try running my python script:
M-MBP:folder m$ python3.7 folium.py
Traceback (most recent call last):
File "folium.py", line 3, in <module>
import folium
File "/Users/m/folder/folium.py", line 4, in <module>
from folium.plugins import MarkerCluster
ModuleNotFoundError: No module named 'folium.plugins'; 'folium' is not a package
Notes:
I am running Python3.7, installed via Homebrew;
I've tried installing Folium via pip, conda, and cloning its Git repo directly to my site-packages folder.
None have worked. Any suggestions?
Thanks!
Your script is named the same as the package you want. It's trying to import itself and it doesn't have plugins within it. Name your script something other than folium.py and I believe your problem will disappear.
Demonstrated:
arts#support:~ 0$ python3
Python 3.4.9 (default, Aug 14 2018, 21:28:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import logging
>>> logging.DEBUG
10
>>>
arts#support:~ 0$ cd tmp
arts#support:~/tmp 0$ python3
Python 3.4.9 (default, Aug 14 2018, 21:28:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import logging
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/arts/tmp/logging.py", line 5, in <module>
print(logging.DEBUG)
AttributeError: 'module' object has no attribute 'DEBUG'
>>>
arts#support:~/tmp 0$ cat logging.py
import sys
import logging # Imports itself
import os
print(logging.DEBUG)
The reason is, you need to look at sys.path
arts#support:~/tmp 0$ python3
Python 3.4.9 (default, Aug 14 2018, 21:28:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
['', '/usr/lib64/python34.zip', '/usr/lib64/python3.4', '/usr/lib64/python3.4/plat-linux', '/usr/lib64/python3.4/lib-dynload', '/usr/lib64/python3.4/site-packages', '/usr/lib/python3.4/site-packages']
>>> del sys.path[0]
>>> sys.path
['/usr/lib64/python34.zip', '/usr/lib64/python3.4', '/usr/lib64/python3.4/plat-linux', '/usr/lib64/python3.4/lib-dynload', '/usr/lib64/python3.4/site-packages', '/usr/lib/python3.4/site-packages']
>>> import logging
>>> logging.DEBUG
10
>>>
arts#support:~/tmp 0$ python3
Python 3.4.9 (default, Aug 14 2018, 21:28:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/lib64/python34.zip', '/usr/lib64/python3.4', '/usr/lib64/python3.4/plat-linux', '/usr/lib64/python3.4/lib-dynload', '/usr/lib64/python3.4/site-packages', '/usr/lib/python3.4/site-packages']
>>> import logging
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/arts/tmp/logging.py", line 5, in <module>
print(logging.DEBUG)
AttributeError: 'module' object has no attribute 'DEBUG'
>>>
In this second chunk, you'll see that I deleted the first chunk of the list. This removes your CURRENT DIRECTORY from python's import path, so it now ignored my logging.py file and successfully imported the real logging module.
How does the following python session make sense?
(ctlearn) jsevillamol#jsevillamol-N551JK:~/Documentos/ctlearn_keras$ python
Python 3.6.5 | packaged by conda-forge | (default, Apr 6 2018, 13:39:56)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-15)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from tensorflow.python.keras.models import Model
>>> import tensorflow.python.keras as K
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'tensorflow' has no attribute 'python'
I can import tensorflow.python.keras.models, but not import tensorflow.python.keras.
What. I don't even.
Isn't log a built in package in python?
# /usr/bin/python
Python 2.7.5 (default, Oct 11 2015, 17:47:16)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import log as logging
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named log
>>>
Do I need to install log with pip ?
logging is a built-in package, not log:
import logging as log
Using Python 2.7 on Ubuntu 12.10 64Bit gives me the following trouble:
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
>>> ctypes.c_bool()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'c_bool'
>>>
How can I fix this problem?
Do you have a file called "ctypes.py" in the directory where you are working? If so, move it or (preferably) rename it.
could you please explain me the error below, and give me a workaround?
Thanks in advance!
Python 2.4.3 (#1, Apr 14 2011, 20:41:59)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from xml.sax import make_parser
>>> p = make_parser()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib64/python2.4/site-packages/_xmlplus/sax/sax2exts.py", line 37, in make_parser
return XMLParserFactory.make_parser(parser_list)
File "/usr/lib64/python2.4/site-packages/_xmlplus/sax/saxexts.py", line 75, in make_parser
sys.modules[parser_name].create_parser = _create_parser
KeyError: 'xml.sax.drivers2.drv_pyexpat'
>>>
Problem seems to be with your python version and python library.
Have a look here