Import boto3 always gives error. When I tries to import boto3 for the first time, Python gives error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/boto3/__init__.py", line 16, in <module>
from boto3.session import Session
File "/usr/local/lib/python2.7/site-packages/boto3/session.py", line 17, in <module>
import botocore.session
File "/usr/local/lib/python2.7/site-packages/botocore/session.py", line 25, in <module>
import botocore.configloader
File "/usr/local/lib/python2.7/site-packages/botocore/configloader.py", line 19, in <module>
from botocore.compat import six
File "/usr/local/lib/python2.7/site-packages/botocore/compat.py", line 25, in <module>
from botocore.exceptions import MD5UnavailableError
File "/usr/local/lib/python2.7/site-packages/botocore/exceptions.py", line 15, in <module>
from botocore.vendored.requests.exceptions import ConnectionError
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/__init__.py", line 58, in <module>
from . import utils
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/utils.py", line 26, in <module>
from .compat import parse_http_list as _parse_list_header
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/compat.py", line 7, in <module>
from .packages import chardet
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/packages/__init__.py", line 3, in <module>
from . import urllib3
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/packages/urllib3/__init__.py", line 10, in <module>
from .connectionpool import (
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/packages/urllib3/connectionpool.py", line 37, in <module>
from .request import RequestMethods
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/packages/urllib3/request.py", line 6, in <module>
from .filepost import encode_multipart_formdata
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/packages/urllib3/filepost.py", line 8, in <module>
from .fields import RequestField
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/packages/urllib3/fields.py", line 1, in <module>
import email.utils
File "email.py", line 2, in <module>
from botocore.exceptions import ClientError
ImportError: cannot import name ClientError
If I try to import again, the error becomes
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/boto3/__init__.py", line 16, in <module>
from boto3.session import Session
File "/usr/local/lib/python2.7/site-packages/boto3/session.py", line 17, in <module>
import botocore.session
File "/usr/local/lib/python2.7/site-packages/botocore/session.py", line 25, in <module>
import botocore.configloader
File "/usr/local/lib/python2.7/site-packages/botocore/configloader.py", line 19, in <module>
from botocore.compat import six
File "/usr/local/lib/python2.7/site-packages/botocore/compat.py", line 25, in <module>
from botocore.exceptions import MD5UnavailableError
File "/usr/local/lib/python2.7/site-packages/botocore/exceptions.py", line 15, in <module>
from botocore.vendored.requests.exceptions import ConnectionError
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/__init__.py", line 58, in <module>
from . import utils
File "/usr/local/lib/python2.7/site-packages/botocore/vendored/requests/utils.py", line 25, in <module>
from . import certs
ImportError: cannot import name certs
I have tried to use old version
boto3==1.4.4
botocore==1.5.95
And I also tried to upgrade to latest version
boto3==1.5.6
botocore==1.8.20
both of these give the same error.
AWS version that I use is
awscli==1.14.16
awsebcli==3.12.1
I have also posted this issue on StackOverflow. Still no luck of fixing this.
I would recommend trying to completely uninstall botocore / boto3 and do a re-install. Something in your installation is off. I would also recommend using a virtualenv so that these sorts of issues can be isolated and easily resolved.
I try to use virtualenv and install boto3 from scratch, but it still does not work. I don't know if it is installation issue. I try to run import boto3 in Python command line and it works fine. It only fails if I try to run a program containing import boto3.
How did you install boto3? Did you install via pip? What's your OS?
Yes, I install via pip. My Python version is 2.7.10 and I am using MacOS. OS version is macOS 10.13.2.
same here with windows 10 user... How to resolve in windows 10??????????
My python is 3.6.2
boto3
Exactly this is the error
>>> import boto3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Abhinav\AppData\Local\Programs\Python\Python36-32\lib\site-packages\boto3\__init__.py", line 16, in <mo
dule>
from boto3.session import Session
File "C:\Users\Abhinav\AppData\Local\Programs\Python\Python36-32\lib\site-packages\boto3\session.py", line 17, in <mod
ule>
import botocore.session
File "C:\Users\Abhinav\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botocore\session.py", line 25, in <
module>
import botocore.configloader
File "C:\Users\Abhinav\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botocore\configloader.py", line 19,
in <module>
from botocore.compat import six
File "C:\Users\Abhinav\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botocore\compat.py", line 25, in <m
odule>
from botocore.exceptions import MD5UnavailableError
File "C:\Users\Abhinav\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botocore\exceptions.py", line 15, i
n <module>
from botocore.vendored.requests.exceptions import ConnectionError
File "C:\Users\Abhinav\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botocore\vendored\requests\__init__
.py", line 58, in <module>
from . import utils
File "C:\Users\Abhinav\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botocore\vendored\requests\utils.py
", line 12, in <module>
import cgi
File "C:\Users\Abhinav\AppData\Local\Programs\Python\Python36-32\lib\cgi.py", line 39, in <module>
from email.parser import FeedParser
File "C:\Users\Abhinav\email.py", line 2, in <module>
from botocore.exceptions import ClientError
ImportError: cannot import name 'ClientError'
This issue is very weird.
Disabling MacOS rootless feature only solves the issue temporarily, and then it fails again.
I tried to install boto3 from source in virtualenv and it succeeded once. However, after I try to recreate same environment with same approach, it fails again.
exactly...
It works sometimes, but every time else it doesn't.
I think our mistake is to put our file named as email.py and Python cannot pick up the correct module as pointed by the post.
It is not related to package installation. Just rename the file.
Looks like @jiashenC figured it out.
Most helpful comment
Please look at this post
I think our mistake is to put our file named as
email.pyand Python cannot pick up the correct module as pointed by the post.It is not related to package installation. Just rename the file.