pip install requests[security]与pip install requests的区别

35

我正在使用 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. 为什么前者要安装三个额外的包?

  2. 在将代码推向生产环境时,有什么需要注意的事项吗?

  3. 它们一般表现相同吗?

1个回答

50
为什么前者要安装三个额外的包?
使用requests[security]而不是requests将会安装 三个附加包
  • pyOpenSSL
  • cryptography
  • idna
这些在extras_requires中定义,作为具有附加依赖项的可选功能
有没有需要注意的问题,当我把代码推到生产环境时?
您需要确保能够无问题地安装这些附加包,并且对 SSL 连接工作方式的任何更改不会影响您的使用。
它们两者一般都表现相同吗?
与默认标准库选项相比,使用这些包将允许更安全的 SSL 连接。

更多信息,请查看合并请求的链接讨论问题的链接

(从评论中,当GitHub不可用时):

目前,使用pyOpenSSL、ndg-httspclient和pyasn1时的SSL连接比仅使用stdlib选项更安全。然而,实际上很难记住这三件事情。如果requests能够在其setup.py中添加一个额外的功能,那么人们就可以安装带有betterssl的requests(Donald Stufft)。


默认情况下,由于古老的OpenSSL,OS X上的某些网站无法连接。使用上述3个软件包可以实现连接。(Donald Stufft)

2
在Python 3.4+和Python 2.7.9+上,它已经不再更好了。请参见此处:https://github.com/kennethreitz/requests/pull/2195#issuecomment-53934322 - Nizam Mohamed
你如何使用“yum”安装它? - Pathros
从requests 2.26.0开始,security额外功能不再起作用。 - nog642

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接