Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法安装Python软件包[SSL:TLSV1\u警报\u协议\u版本]_Python_Python 2.7_Pip_Ssl Certificate - Fatal编程技术网

无法安装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)用户:

  • 使用shell运行虚拟环境。(将“/venv/bin/activate”替换为您自己的路径)

  • 运行升级

    curl https://bootstrap.pypa.io/get-pip.py | python
    
  • 重新启动PyCharm实例,并优先检查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命令,它对我有效

    总结矿山的解决方案:

  • 检查pip.ini(通常在路径
    C:\ProgramData\pip
    下)是否已修改

  • 如果在步骤1中是,请尝试将其重置为默认配置

  • myenv:

    python 2.7.14

    pip 9.0.1

    mac osx 10.9.4


    我的解决方案:

  • 从以下位置手动下载
    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