pip安装请求[security]与pip安装请求:区别



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

在使用请求包时,我按照SSL InsecurePlatform error中的说明解决了此问题。

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

  1. 为什么前者要安装三个额外的软件包?

  2. 当我将代码推向生产环境时,是否有任何事情需要我注意?

  3. 它们的行为通常相同吗?

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

使用requests[security]代替requests将安装三个额外的软件包:

  • pyOpenSSL
  • 密码学
  • idna

这些是在extras_requires中定义的,作为附加依赖项的可选特性。

当我将代码推向生产环境时,是否有什么事情需要我注意?

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

它们的行为通常相同吗?

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

有关更多信息,这里是合并的拉取请求,这里是讨论的问题。

(从评论,当GitHub消失):

所以现在当你使用pyOpenSSL, ndg- httpclient和pyasn1的SSL连接比如果你只使用stdlib选项更安全。然而,要真正记住这三件事很难。如果请求可以在它的setup.py中添加一个额外的内容,这样人们就可以使用betterssl (Donald stuff)

来安装请求,那就太酷了。

由于旧的OpenSSL,默认情况下请求无法连接到OS X上的某些站点。使用上述3个包可以实现这一点。(Donald Stufft)

最新更新