Question

I am using httplib2 to make calls to Amazon Web Services (AWS):

http = httplib2.Http(cache='.cache')
response, content = http.request('https://sdb.amazonaws.com/...')

However it fails looking for CAs (I think):

File "C:\Python32\lib\site-packages\httplib2\__init__.py", line 1059, in request self.disable_ssl_certificate_validation)
File "C:\Python32\lib\site-packages\httplib2\__init__.py", line 772, in __init__ context.load_verify_locations(ca_certs)
IOError: [Errno 2] No such file or directory

My questions:

  1. Is there something I need to do to configure my OS and environment for this to work?
  2. I've seen a lot of posts about making sure the sockets library is built for SSL in Python 2; does that apply to Python 3?

Thanks!

Was it helpful?

Solution

The httplib2 /Python3 folder is missing cacerts.txt, so it doesn't get copied to the Python /lib folder. I copied the file there manually and everything worked. This is a known issue with httplib2.

OTHER TIPS

I know late to the game but my issue was related to a bad PYTHONPATH command in my bash profile and thus the directory was being put in the incorrect location.

Solution was to remove the PYTHONPATH command in my bash profile and voila.

I spent hours trying to figure this out and finally I have an answer. This can happen on Windows if the certificate (CA) file is blocked if you downloaded it from another source or computer. Right click on the cert file and check the "unblock" box.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top