So what's the fix? Uninstall-install then maybe an update or upgrade.
- I updated Python to 2.7.11. You might not need to do this if your up-to-date.
- I uninstalled requests. - $ pip uninstall requests
- I uninstalled urllib3. - $ pip uninstall urllib3
- Installed crypto dependencies or libs. This is where it gets hairy.
First I had to update my machine's openSSL library. This could range from easy to hair pulling hard. Thankfully, I had brew on my machine so it was relatively easy.
Anyhow you'll want to see this from the terminal after the update.
$ openssl version OpenSSL 0.9.8zh 14 Jan 2016
After you'll need to run this command:
$ pip install pyopenssl ndg-httpsclient pyasn1
This installs the rest of the crypto dependencies.
- I installed urllib3 back. - $ pip install urllib3
I also installed urllib3[secure]. - $ pip install urllib3[secure]
You might not need the secure version but I covering all the bases.
- Install requests back. - $ pip install requests
Same deal with urllib3, you might also want to install request with security.
$ pip install request[security]
Why this works? I suspect that there's an installation-time check for either urllib3 (or requests) for the crypto stuff that keeps things from working without the uninstall-reinstall.