如何使用 Python 2.7 在 Windows 上修复 pip 安装证书问题? [复制]

Posted

技术标签:

【中文标题】如何使用 Python 2.7 在 Windows 上修复 pip 安装证书问题? [复制]【英文标题】:How can I fix pip install certificate issue on Windows with Python 2.7? [duplicate] 【发布时间】:2018-09-27 13:08:49 【问题描述】:

在 Windows 中,我安装了 Python 2.7。我在我的虚拟环境中使用这个版本的 Python。当我尝试使用任何东西进行 pip install 时,我收到以下类型的错误,表明我没有有效的安全证书。

c:\projects\scrubbed\scrubbed\env\lib\site-packages\pip_vendor\urllib3\util\ssl_.py:339: SNIMissingWarning:已发出 HTTPS 请求,但 SNI TLS 的(主题名称指示)扩展在此不可用 平台。这可能会导致服务器提供不正确的 TLS 证书,这可能导致验证失败。您可以升级到 更新版本的 Python 来解决这个问题。有关详细信息,请参阅 https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings SNIMissingWarning c:\projects\scrubbed\scrubbed\env\lib\site-packages\pip_vendor\urllib3\util\ssl_.py:137: InsecurePlatformWarning:真正的 SSLContext 对象不可用。 这会阻止 urllib3 正确配置 SSL,并可能导致 某些 SSL 连接失败。您可以升级到更新版本的 Python 来解决这个问题。有关详细信息,请参阅 https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecurePlatformWarning Retrying (Retry(total=4, connect=None, 连接中断后读取=无,重定向=无,状态=无)) 'SSLError(SSLError(1,'_ssl.c:499:错误:1407742E:SSL 例程:SSL23_GET_SERVER_HELLO:tlsv1 警报协议版本'),)': /简单/证书/ c:\projects\scrubbed\scrubbed\env\lib\site-packages\pip_vendor\urllib3\util\ssl_.py:137: InsecurePlatformWarning:真正的 SSLContext 对象不可用。 这会阻止 urllib3 正确配置 SSL,并可能导致 某些 SSL 连接失败。您可以升级到更新版本的 Python 来解决这个问题。有关详细信息,请参阅 https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings

我在 Python 3.6.5 虚拟环境中没有这些问题。不幸的是,我需要使用 Python 2.7 进行 Google App Engine 开发。

我的 requirements.txt 文件包括以下内容:

Flask>=0.12
Flask-Cors>=3.0.3
flask-restplus>=0.10.1
google-api-python-client>=1.6.5
GoogleAppEngineCloudStorageClient>=1.9.22.1

我目前对任何修复感兴趣。我几乎尝试了在 *** 上找到的所有内容。

编辑 这已被确定为问题"...Could not find a version that satisfies the requirement..." 的可能重复。然而,这些错误消息完全不同。我的实际解决方法是完全安装 Python 2.7.14,从 Python.org 下载

【问题讨论】:

【参考方案1】:

在你的错误中看到这一行:

routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version'),)': 

Python.org 网站最近停止了对 TLS v1.0 和 v1.1 的支持

尝试如下升级 pip:

curl https://bootstrap.pypa.io/get-pip.py | python

升级 pip 后,您仍然可以使用 Python 2.7,因为它将使用更高的 TLS 版本(即 >=1.2)

更多详情请见this answer。

【讨论】:

我安装了 Python 2.7.14。之前不知道2.7.x是什么版本,现在可以在2.7虚拟环境下运行pip install了。 我注意到我更新到 Python 2.7.14 的实际方法在我对原始问题的编辑中有所不同。 对我来说,它是通过下载并运行安装程序为 Windows 升级实际的 python 它对我不起作用@anupam 我确认将 python 版本升级到 2.7.15 可以解决问题。 (在我使用 python 2.7.9 并按照建议更新 pip 之前给出了相同的 TLS 错误)现在 pip 按预期运行

以上是关于如何使用 Python 2.7 在 Windows 上修复 pip 安装证书问题? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 2.7 在 Windows 上运行 Scapy

如何在 Windows 上的 Python 2.7 上安装 Tensorflow?

Pydub for python 2.7 [windows 7]

如何在 Python 2.7 中使用 tkinter 库 [关闭]

如何从 Python 3.2 降级到 2.7?

在 Windows 64 位上使用 python 2.7 安装 mod_wsgi