gpt4 book ai didi

Python PIP 和不安全平台警告

转载 作者:行者123 更新时间:2023-11-28 18:07:55 25 4
gpt4 key购买 nike

我正在尝试为 Python(CentOS6 上的 2.6.6)安装 requests

sudo pip install requests[security]

我收到这些错误消息:

/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Collecting requests[security]
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning

我确保所有系统库都已到位

sudo yum install openssl-devel python-devel libffi-devel

一切都很好

所以我试过了

sudo pip install pyopenssl ndg-httpsclient pyasn1

sudo pip install --trusted-host pypi.python.org requests

这些也失败了。

由于一些旧代码,我需要坚持使用 Python 2.6

知道这里出了什么问题以及如何解决吗?

附言

我已决定降级 pip,结果发现 pip 版本 6.1+ 出现了错误。对此有何想法?

最佳答案

的确,截至2019年,仍有不少人面临这个问题,由于各种限制,他们无法升级系统Python(和系统提供的openssl)。

如果您想修复 InsecurePlatformWarning ..(由 SSLError .. SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version'),以下解决方案可以帮助使用旧 Linux 发行版的人:

Unable to install Python packages using pip in Ubuntu Linux: InsecurePlatformWarning, SSLError, tlsv1 alert protocol version

Python 2.6.6 on CentOS6

在您的特定情况下,正式支持 Python 2.6 的最后一个 cryptography 版本是 cryptography-2.1.1,尽管较新的版本可能会起作用。第一个 ma​​nylinux1 密码学包包括它自己的 OpenSSL (1.1.0f) Linux 共享库绑定(bind),不管你的平台上有什么,已经出现在 cryptography-2.0 版本中。最后一个仍然正式支持 Centos 6.4 的密码学是 1.8.2 版,而较新的版本仅正式支持 CentOS 7.x:https://pypi.org/project/cryptography/#files

请注意,密码学版本<2.0 没有manylinux1 并且没有随附 openssl/ssllib,仅依赖于系统提供的(当时,它们仅针对其他操作系统提供)有/有更大的 SSL 问题)。虽然 cryptography-2.0 (manylinux1) 仍然值得尝试,但在编译 cryptography 1.8.2 以链接它之前,您可能必须在 Centos 6.x 上本地编译较新的 openssl 版本 (1.0.1 - 1.1.0):
https://cryptography.io/en/latest/installation/#using-your-own-openssl-on-linux
https://cryptography.io/en/latest/installation/#rhel-centos

还有一个选项可以构建您自己的可在您自己的系统上运行的静态链接轮:
https://cryptography.io/en/latest/installation/#static-wheels

That said,

如果您只需要安装 requests 库(无需解决臭名昭著的 SSLError),特别是在 CentOS6 上的 Python 2.6.6 中,您将不需要 TLS 1.2 协议(protocol)支持请求,您可以简单地使用您的 Centos 存储库:

$ yum 搜索请求
$ sudo yum install python26-requests

或者,您可以使用与 above-mentioned solution 类似的方式获取并安装 requests ,从 wheels 或从 tar.gz 下载: https://pypi.org/project/requests/

请注意,PyPI 上最新的requests 依赖于以下 Python 包:urllib3、idna、chardet、certifi

幸运的是,这四个没有其他依赖项,可以直接从 PyPI 获取,方式相同 - PyPI 上的“下载文件”部分:
https://pypi.org/project/urllib3/
https://pypi.org/project/idna/
https://pypi.org/project/chardet/
https://pypi.org/project/certifi/

您可以下载并尝试安装他们的最新版本,或使用“发布历史”部分找到旧版本,具体取决于您的用例和系统特定要求。

请注意,现在许多网络服务器(包括 PyPI)都需要 TLS 1.2 支持,在客户端和服务器后端,以建立 HTTPS 连接,因此如果您需要这种类型的连接,requests如果不按照上面讨论的方式修复 SSLError 将无法工作(或者通过针对 OpenSSL 版本 1.0.2+ 编译更新的 Python 2.7.9+,在这种情况下,之前 编译新的 Python,用它​​链接 ssl 模块)。

关于Python PIP 和不安全平台警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52518336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com