Patch pyopenssl for sslv3 issue
Solution 1:
This is actually an issue with urllib3
, not with pyopenssl
. Debian lately compiles OpenSSL without SSLv3 support, and urllib3
just assumed that support was there.
The issue was fixed in commit b9b3b0102 which is part of the 1.10 release of urllib3
.
As you are using urllib3
as part of requests
, which in turn is used by pip
, it should be enough to update to a recent version of requests
. As of writing, the current version is 2.6.0 which contains the fix:
# pip install requests==2.6.0
You might encounter a problem upgrading requests
, because of the chicken-egg problem. To fix this, you can try to temporarily remove the pyopenssl
package, upgrade requests
and reinstall pyopenssl
.
Additionally you might want to use the following line to update pip
before trying to update requests
:
# sudo easy_install --upgrade pip
Solution 2:
Another way to fix the problem is to use
sudo easy_install --upgrade pip
and use pip normally afterwards
Solution 3:
I've received the same error.
In conjunction with the previous answers:
sudo easy_install --upgrade pip
I've also had to run:
sudo pip uninstall pyopenssl
sudo pip install mozdownload
This fixed my error, maybe it can help others. I came here by googling:
AttributeError: 'module' object has no attribute 'PROTOCOL_SSLv3'
Solution 4:
I ran into this problem today with Ansible. I solved it with:
pip uninstall pyopenssl
maybe this will help someone else in the same situation