我使用的是Python版本2.7.6的Ubuntu 14.04(Trusty Tahr)。今天,当我创建新的virtualenv
并尝试执行pip install requests
时,我收到了错误InsecurePlatformWarning
。
我按照 SSL InsecurePlatform error when using Requests package 中的说明解决了这个问题。
但我想了解这两个命令之间的实际区别是什么:
pip install requests[security]
和pip install requests
。
为什么前者安装了三个额外的包?
将代码推送到生产环境时,是否需要注意哪些事项?
他们一般都表现得一样吗?
答案 0 :(得分:41)
为什么前者安装3个额外的包?
使用requests[security]
代替requests
将安装three additional packages:
这些内容在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。
(从评论中,当GitHub消失时):
现在,当您使用pyOpenSSL,ndg-httspclient和pyasn1时,SSL连接比使用stdlib选项更安全。然而,实际上很难记住这三件事。如果请求会为它的setup.py添加一个额外的内容,那么人们可以用betterssl安装请求(Donald Stufft)
默认情况下,由于古老的OpenSSL,请求无法连接到OS X上的某些站点。使用上述3个包可以实现。 (唐纳德斯塔菲)