(我正在运行 Ubuntu 20.04.3 LTS)
我每天都会使用awscli
,它是用 apt 安装的,运行良好。但是,boto3
与最新版本 (1.20.3) 相比,它附带的版本非常旧 (1.9.253)。通常情况下,这不是问题,但这个版本的 boto3 中似乎有一个错误,阻止我编写任何需要使用 AWS 的 SSO 接口的脚本:
import boto3
boto3.setup_default_session()
client = boto3.client('secretsmanager')
client.list_secrets() # NoCredentialsError
在运行现代版本 boto3 的虚拟环境中运行相同的代码会出现预期的输出,所以我认为这里的问题在于版本差距太大。
我知道我可以只需pip install --upgrade boto3
以 root 身份运行,但这可能会导致各种问题,所以我正在寻找更干净/更安全的替代方案。有这样的方案吗?目前,我正在考虑在任何地方启动小型虚拟环境并编写包装器别名以使用该 python 实例来运行我的脚本,但这也让人感到很讨厌。