Python3 和 aws-cli 版本不同

Python3 and aws-cli version differ

我按照 aws 文档安装了 aws-cli

$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
$ sudo installer -pkg AWSCLIV2.pkg -target /

当我验证它们的存在时,我得到 不同的 Python 个版本。

$ python3 --version
Python 3.9.6

$ aws --version
aws-cli/2.2.26 Python/3.8.8 Darwin/20.6.0 exe/x86_64 prompt/off

这是预期的吗?

是的,这是预期的。 CLI 不使用您的 OS 的 python,一个被捆绑到 .pkg 文件以及所有其他依赖项中。这简化了安装、测试和开发。您可以随心所欲地摆弄 OS 的 python,而不会破坏 CLI。

代码的核心在这里: https://github.com/aws/aws-cli/blob/v2/scripts/make-bundle

当您使用 sudo 安装软件包时,您并不是指特定于您的用户设置的内容,python 版本就是这些设置之一。

Python3.8.8为系统安装版本(System Installed

Python 3.9.6 特定于您的用户设置,您可能正在使用 pipenv 或任何其他为您设置 python 版本的设置。

因此存在差异。

$›› sudo python --version
Password:
Python 2.7.16
$›› python --version
Python 2.7.16