pip install requests[security] vs pip install requests:差异

Posted

技术标签:

【中文标题】pip install requests[security] vs pip install requests:差异【英文标题】:pip install requests[security] vs pip install requests: Difference 【发布时间】:2015-10-27 00:22:28 【问题描述】:

我正在使用 Ubuntu 14.04 (Trusty Tahr) 和 Python 版本 2.7.6。今天,当我创建一个新的virtualenv 并尝试执行pip install requests 时,我收到了错误InsecurePlatformWarning

我按照 SSL InsecurePlatform error when using Requests package 中的说明解决了这个问题。

但我想了解这两个命令之间的实际区别是什么: pip install requests[security]pip install requests

    为什么前者要额外安装三个包?

    将代码推送到生产环境时有什么需要注意的吗?

    它们的行为通常相同吗?

【问题讨论】:

【参考方案1】:

为什么前者要额外安装3个包?

使用requests[security] 代替requests 将安装three additional packages:

pyOpenSSL 密码学 idna

这些在extras_requires 中定义为optional features with additional dependencies。

当我将代码推送到生产环境时,有什么需要注意的吗?

您需要确保能够安装这些附加软件包而不会出现任何问题,并且对 SSL 连接工作方式的任何更改都不会影响您的使用。

它们的行为通常相同吗?

使用这些包而不是默认的标准库选项将允许更安全的 SSL 连接。

更多信息,here's the pull request where it was merged in 和 here is the issue where it was discussed。

(来自 cmets,当 GitHub 消失时):

因此,现在使用 pyOpenSSL、ndg-httspclient 和 pyasn1 时的 SSL 连接比仅使用 stdlib 选项更安全。然而,很难真正记住这三件事。如果 requests 会在 setup.py 中添加一个额外的内容,这样人们就可以使用 betterssl (Donald Stufft) 安装请求,那就太酷了

此外,由于古老的 OpenSSL,默认情况下请求无法连接到 OS X 上的某些站点。使用上述 3 个软件包使其成为可能。 (唐纳德的东西)

【讨论】:

@citruspi “在 Python 3.4+ 和 Python 2.7.9+ 上,它不再更好了”参见here 如何使用“yum”安装它? As of requests 2.26.0 security extra 不再做任何事情。

以上是关于pip install requests[security] vs pip install requests:差异的主要内容,如果未能解决你的问题,请参考以下文章

安装 pip install requests 和 pip install bs4 [重复]

8-linux 安装 requests 时 pip install 安装不了

Requests 库安装

7Python标准库系列之requests模块

Python爬虫Requests库的安装

爬虫—使用Requests