Python 2.7 针对sslv3问题的修补程序pyopenssl
我在使用python 2.7.9-2 amd64的Debian 8系统上遇到了一个问题:Python 2.7 针对sslv3问题的修补程序pyopenssl,python-2.7,debian,pip,pyopenssl,urllib3,Python 2.7,Debian,Pip,Pyopenssl,Urllib3,我在使用python 2.7.9-2 amd64的Debian 8系统上遇到了一个问题: marius@pydev:/usr/lib/python2.7/dist-packages/urllib3/contrib$ pip search doo Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> load_entry_point('pip==1.5.6', 'con
marius@pydev:/usr/lib/python2.7/dist-packages/urllib3/contrib$ pip search doo
Traceback (most recent call last):
File "/usr/bin/pip", line 9, in <module>
load_entry_point('pip==1.5.6', 'console_scripts', 'pip')()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 356, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2476, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2190, in load
['__name__'])
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 74, in <module>
from pip.vcs import git, mercurial, subversion, bazaar # noqa
File "/usr/lib/python2.7/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
from pip.download import path_to_url
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 22, in <module>
import requests, six
File "/usr/local/lib/python2.7/dist-packages/requests/__init__.py", line 53, in <module>
from .packages.urllib3.contrib import pyopenssl
File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 73, in <module>
ssl.PROTOCOL_SSLv3: OpenSSL.SSL.SSLv3_METHOD,
**AttributeError: 'module' object has no attribute 'PROTOCOL_SSLv3'**
有人能告诉我怎么解决这个问题吗?如果有人有线索,那就太棒了。我在谷歌上搜索了这个问题,只找到了不完整的补丁,而且很混乱。这也可能是bug追踪器修复后的情况。我对所有Python软件包都有这个问题。这实际上是
urlib3
的问题,而不是pyopenssl
的问题。Debian和urllib3
只是假设支持就在那里
问题是哪个是urllib3
的1.10版本的一部分
当您使用urllib3
作为请求的一部分时,pip使用urllib3
,应该足以更新到请求的最新版本。在撰写本文时,当前版本为2.6.0,其中包含以下修复程序:
# pip install requests==2.6.0
由于鸡蛋问题,升级请求时可能会遇到问题。要解决此问题,您可以尝试暂时删除pyopenssl
包,升级请求
并重新安装pyopenssl
此外,在尝试更新请求之前,您可能希望使用以下行更新pip
:
# sudo easy_install --upgrade pip
另一种解决问题的方法是使用
sudo easy_install --upgrade pip
然后正常使用pip我收到了相同的错误。
结合前面的回答:
sudo easy_install --upgrade pip
我还得跑:
sudo pip uninstall pyopenssl
sudo pip install mozdownload
这修正了我的错误,也许可以帮助别人。我是通过谷歌来这里的:
AttributeError:'module'对象没有属性'PROTOCOL_SSLv3'
今天我和Ansible遇到了这个问题。我用以下方法解决了这个问题:
pip卸载pyopenssl
也许这会帮助其他人在同样的情况下我从Ubuntu 14升级到16后收到了这个错误。升级改变了一些Python路径,这破坏了一些核心包。基本上是为我修好的
sudo apt-get purge python-pkg-resources
sudo apt-get -f install
sudo rm -Rf /usr/local/bin/pip
sudo apt-get install python-pip
sudo pip install -U pip
我在一个新的Xenial上遇到了这个问题,但没有成功,因为我看到了很多答案(有些我真的没有尝试,因为我的大多数软件都是最新的)。最终为我解决的是:sudopip安装请求--升级。。。这只是另一个请求升级建议的一个转折。我遇到了同样的问题,我只是卸载了请求的版本,并使用以下命令安装了确切的版本
pip安装请求==2.6.0
然后它工作了只是为了澄清,对我有效的是上面的内容,然后运行'pip install requests==2.6.0'确认!这与@Oliver Block所述的pip安装请求==2.6.0
配合使用。非常感谢!请注意,如果您在virtualenv中,您不想使用sudo
!在我的自定义脚本中,我通过移动到协议_TLSv1(而不是协议_SSLv3)解决了这个问题。感谢@sk1psudopip安装的提示——升级请求在Debian8.6forMei上实现了.21版本的请求,但仍然存在问题。尝试了你们所做的但并没有成功的方法也适用于docker的同样情况。这解决了我的问题,以前我应用sk1p答案时并没有运气。我不需要按照Alexartan的建议安装mzdownload。
sudo apt-get purge python-pkg-resources
sudo apt-get -f install
sudo rm -Rf /usr/local/bin/pip
sudo apt-get install python-pip
sudo pip install -U pip