Ubuntu环境下AWS CLI执行命令返回Python对象而非常规输出求助
AWS CLI执行返回Python对象问题排查方案
该异常表现为所有CLI命令输出<botocore.awsrequest.AWSRequest object at 0x...>,本质是运行时依赖冲突、版本冲突或配置异常导致的输出逻辑失效,可按以下顺序排查:
1. 排查多版本AWS CLI冲突
- 执行
which aws确认当前执行的CLI路径,官方v2版本默认路径为/usr/local/bin/aws。如果返回/usr/bin/aws或Python虚拟环境内的路径,说明系统预装的旧版本awscli(1.x系列Python包)和新装的v2版本冲突。 - 执行
aws --version验证版本,若为1.x版本,执行以下命令完全卸载旧版本:sudo apt remove --purge awscli -y sudo pip3 uninstall -y awscli botocore - 执行
hash -r刷新shell命令缓存,再次验证CLI路径和版本是否符合v2预期。
2. 排查Python路径加载异常
AWS CLI v2自带独立依赖包,不应该调用系统全局Python库。如果全局Python环境下的botocore版本被优先加载,就会触发该报错:
- 执行
echo $PYTHONPATH检查是否有全局Python库路径被提前加入环境变量。 - 临时清空PYTHONPATH测试:
再次执行AWS CLI命令验证是否恢复正常。如果生效,将export PYTHONPATH=""export PYTHONPATH=""添加到~/.bashrc(或~/.zshrc,对应你使用的shell)文件末尾永久生效。
3. 排查配置文件异常
- 备份后删除
~/.aws/config和~/.aws/credentials两个配置文件,重新执行aws configure初始化基础配置后测试。 - 确认配置文件中
output参数值为json、text、table三者之一,无无效配置项。
4. 重装AWS CLI v2
如果上述步骤均无效,完全清理残留后重新安装:
sudo rm -rf /usr/local/aws-cli /usr/local/bin/aws /usr/local/bin/aws_completer rm -rf ~/.aws/
重新下载官方v2安装包安装即可。
内容的提问来源于stack exchange,提问作者Iván
相关产品推荐
相关产品推荐

