使用 pip 安装需要 Python 知识。 AWS CLI 不是 Python 开发人员独有的工具,很容易导致安装无效。通常,报告的问题最终是由于配置错误的 pip 安装导致从错误的位置获取依赖等。这些问题意外发生并且难以调试,这让客户感到沮丧。也有可能无意中破坏同一环境中的其他软件包。依赖于 C 扩展可能意味着在 pip 安装时可能需要存在 C 编译器和任何其他必需的库才能成功安装。因此,我们避免依赖需要 C 扩展的库,因为以前安装 AWS CLI 不需要编译器。我们也不愿意添加编译器作为安装 AWS CLI V2 的要求。对于 V1,这限制了我们实现某些功能的能力,因为没有合适的 Python 本地库满足我们的要求(密码学等)。支持 pip 作为安装机制需要支持我们依赖的包的大依赖范围。虽然概念上很简单,但很难可靠地执行,因为测试平台、Python 版本和包版本的所有排列是不可行的。当我们依赖的新软件包发布时,通过 pip 安装的 V1 客户经常被破坏。这导致我们拥有相对激进的版本范围,最终成为 Python 社区升级软件包的障碍。参见 #4749 #4561 #3535 通过 pip 安装时,有些事情我们无法控制。例如,我们对 openssl 版本或支持哪些 TLS 相关功能没有影响,因为这些将取决于 Python 的构建方式。这使得难以确保 AWS CLI 的功能。我们不能在 AWS CLI 安装中包含或提供额外的二进制文件(甚至可能不是用 Python 编写的)。将来,AWS CLI 可以部分甚至完全用另一种语言重写,同时保持向后兼容性。