无法安装Python软件包[SSL:TLSV1\u警报\u协议\u版本]
我正在尝试使用无法安装Python软件包[SSL:TLSV1\u警报\u协议\u版本],python,python-2.7,pip,ssl-certificate,Python,Python 2.7,Pip,Ssl Certificate,我正在尝试使用pip安装Python库,出现SSL错误: ~/projects/base pre-master± pip install xdict Collecting xdict Could not fetch URL https://pypi.python.org/simple/xdict/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1
pip
安装Python库,出现SSL错误:
~/projects/base pre-master± pip install xdict
Collecting xdict
Could not fetch URL https://pypi.python.org/simple/xdict/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
Could not find a version that satisfies the requirement xdict (from versions: )
No matching distribution found for xdict
pip版本:pip 9.0.1
如何修复此错误?按如下方式升级pip:
curl https://bootstrap.pypa.io/get-pip.py | python
注意:如果不是在虚拟环境中,您可能需要使用上面的sudopython
(请注意,使用pip
升级pip
,即pip安装——升级pip
也不会正确升级。这只是鸡和蛋的问题。pip
除非使用TLS>=1.2,否则无法正常工作。)
如中所述,这是由于最近TLS对pip的反对。org网站上有TLS版本1.0和1.1
从Python状态页面:
完成-滚动限电完成,TLSv1.0和
TLSv1.1已被禁用。4月11日15:37 UTC
对于PyCharm(virtualenv)用户:
curl https://bootstrap.pypa.io/get-pip.py | python
sudo
并指定虚拟Python环境的确切位置:
curl https://bootstrap.pypa.io/get-pip.py | sudo /Users/{your user name}/{path to python}/bin/python
但是,如果
curl
命令本身出现错误而失败,或者即使升级pip
后,“tlsv1警报协议版本”仍然存在,这意味着您的操作系统的底层OpenSSL库版本请检查您的TLS版本:
python2 -c "import urllib2,json; print(json.loads(urllib2.urlopen('https://www.howsmyssl.com/a/check').read())['tls_version'])"
如果您的TLS版本低于1.2,则必须对其进行升级,因为PyPI存储库正处于不推荐早期TLS的耗尽期
来源-
您可以使用以下命令升级TLS版本:
sudo apt-get update && sudo apt-get install openssl libssl-dev
这会解决你的问题。
祝你好运
编辑:
无论TLS版本如何,您都可以使用自己的私有python包存储库下载包。
在OS X上遵循@Anupam的答案会导致以下错误,无论我使用何种权限运行它: 由于环境错误,无法安装程序包:[Errno 13]权限被拒绝: 最终成功的方法是从我的浏览器直接从PyPI下载一个更新的pip包(9.0.3),提取内容,然后pip在本地安装该包:
pip install ./pip-9.0.3/
这修复了我的
[SSL:TLSV1\u ALERT\u PROTOCOL\u VERSION]
错误。为了升级本地版本,我使用了一个轻微的变体:
curl https://bootstrap.pypa.io/get-pip.py | python - --user
如果您将pip和包保存在主目录下(如中所述),则会出现此问题。以下解决方案对我有效:
brew install python2
它还将
pip
升级到了1.10.1版这对我来说很有效,我安装了最新版本的pip,然后安装了库(ciscoconfparse)
升级pip:
curl https://bootstrap.pypa.io/get-pip.py | sudo /Users/{your user name}/{path to python}/bin/python
对于Python2 WIN10用户: 1.彻底卸载python,包括所有文件夹 2.获取并安装最新的python-2.7.msi(版本2.7.15) 3.在第2步之后,您可能会发现pip也已安装
4.现在,如果您的系统环境没有更改,您可以使用pip立即安装软件包。“tlsv1警报协议版本”将不会出现。这对我很有效。在python之前添加sudo
curl https://bootstrap.pypa.io/get-pip.py |sudo python
我尝试了所有现有的修复,但没有为我工作 我通过下载.pkg重新安装了Python2.7(也将安装pip)
在安装下载了pkg之后,我也遇到了这个问题。潜在的问题是Python 2.7版本<2.7.9中的ssl库不再与pip机制兼容 如果您在Windows上运行,并且您(和我们一样)无法从不兼容的2.7版本FWIW轻松升级,我发现如果您将以下文件从另一台计算机上的另一个最新版本的Python(例如Python 2.7.15)复制到您的安装中:
Lib\ssl.py
libs\_ssl.lib
DLLs\_ssl.dll
它将有效地“升级”您的SSL层,使之成为受支持的层;然后,我们可以再次使用pip,甚至可以升级pip。我在windows10上也遇到了这个问题,尝试了所有答案,但没有解决我的问题 C:\python367\Scripts>pip安装 收集烧瓶找不到满足以下条件的版本: 需求瓶(来自版本:)未找到的匹配分发 烧瓶 之后,我发现pip配置文件被修改了。因此,我将
pip.ini
设置为原始默认配置,重新运行pip命令,它对我有效
总结矿山的解决方案:
C:\ProgramData\pip
下)是否已修改我的解决方案:
get pip.py
python获取pip.py
参考文献: 安全下载get-pip.py[1] 运行python get-pip.py。[2] 这将安装或升级pip。此外,如果尚未安装,它将安装setuptools和wheel 确保pip、设置工具和控制盘是最新的 虽然仅pip就足以从预构建的二进制归档文件安装,但setuptools和wheel项目的最新副本非常有用,可以确保您也可以从源归档文件安装:
python-mpip安装--升级pip setuptools-wheel
或者仅仅是所需的库不在repo中。我是Python新手,所有关于升级pip的建议最终都被证明是误导性的。我只是查看了一下,发现这个库(在我的例子中是气流)在某个旧版本上停止了,之后它被重命名了。是的,这种愚蠢的解决方案也是可能的:-)。对于所有的
python3
和pip3
用户:
curl https://bootstrap.pypa.io/get-pip.py | sudo python3
然后假设您要安装
Lib\ssl.py
libs\_ssl.lib
DLLs\_ssl.dll
curl https://bootstrap.pypa.io/get-pip.py | sudo python3
pip3 install pandas --user
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)) - skipping
ERROR: Could not find a version that satisfies the requirement pip (from versions: none)
ERROR: No matching distribution found for pip