我正在使用Ubuntu 14.04 (Trusty Tahr)和Python 2.7.6版本。今天,当我创建一个新的virtualenv
并尝试做pip install requests
时,我得到了错误InsecurePlatformWarning
。
在使用请求包时,我按照SSL InsecurePlatform error中的说明解决了此问题。
但是我想了解这两个命令的实际区别是什么:pip install requests[security]
和pip install requests
.
-
为什么前者要安装三个额外的软件包?
-
当我将代码推向生产环境时,是否有任何事情需要我注意?
-
它们的行为通常相同吗?
为什么前者要安装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)