【问题标题】:pip install requests[security] vs pip install requests: Differencepip install requests[security] vs pip install requests:差异
【发布时间】: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. 为什么前者要额外安装三个包?

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

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

【问题讨论】:

    标签: python python-2.7 pip virtualenv python-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 不再做任何事情。
    猜你喜欢
    • 2020-04-22
    • 2018-08-12
    • 1970-01-01
    • 2015-06-01
    • 2019-11-18
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    相关资源
    最近更新 更多