You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Elastic Beanstalk时旧AWS CLI命令失效,如何解决Python2适配报错?

问题解决方案

根因说明

  1. 原始部署失败是因为当前默认下载的AWS CLI v1最新版本已终止对Python 2.7的支持,而你的Elastic Beanstalk实例底层环境默认用Python 2.7运行安装脚本
  2. 后续出现的UnicodeDecodeError是Python 2.7默认使用ASCII编码处理输出流,当AWS CLI输出日志包含非ASCII字符时触发编码异常,与安装命令本身无关

最优解决方法:安装无Python依赖的AWS CLI v2

AWS CLI v2不依赖系统自带的Python版本,完全规避Python版本兼容问题,直接修改.ebextensions/copyindexes.config的01_install_cli命令即可:

01_install_cli:
  command: |
    wget https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip
    unzip awscli-exe-linux-x86_64.zip
    ./aws/install -b ~/bin/aws
    rm -rf aws awscli-exe-linux-x86_64.zip

02_get_index:
  command: |
    aws s3 cp --region eu-west-1 s3://jthink/release_index_21.tar.gz /home/ec2-user/release_index.tar.gz
    aws s3 cp --region eu-west-1 s3://jthink/artist_index_21.tar.gz /home/ec2-user/artist_index.tar.gz
    cd /usr/share/tomcat7
    tar -xvf /home/ec2-user/release_index.tar.gz
    tar -xvf /home/ec2-user/artist_index.tar.gz
    rm /home/ec2-user/release_index.tar.gz
    rm /home/ec2-user/artist_index.tar.gz

备选方案:继续使用AWS CLI v1兼容版本

如果你必须保留使用AWS CLI v1,需要同时指定最后一个兼容Python2.7的版本,并添加编码环境变量规避解码错误:

01_install_cli:
  command: |
    wget https://s3.amazonaws.com/aws-cli/awscli-bundle-1.19.112.zip
    unzip awscli-bundle-1.19.112.zip
    ./awscli-bundle/install -b ~/bin/aws
    rm -rf awscli-bundle awscli-bundle-1.19.112.zip
  env:
    PYTHONIOENCODING: UTF-8
    LC_ALL: en_US.UTF-8

02_get_index:
  command: |
    aws s3 cp --region eu-west-1 s3://jthink/release_index_21.tar.gz /home/ec2-user/release_index.tar.gz
    aws s3 cp --region eu-west-1 s3://jthink/artist_index_21.tar.gz /home/ec2-user/artist_index.tar.gz
    cd /usr/share/tomcat7
    tar -xvf /home/ec2-user/release_index.tar.gz
    tar -xvf /home/ec2-user/artist_index.tar.gz
    rm /home/ec2-user/release_index.tar.gz
    rm /home/ec2-user/artist_index.tar.gz
  env:
    PYTHONIOENCODING: UTF-8
    LC_ALL: en_US.UTF-8

注:AWS CLI v1 1.19.112是官方确认的最后一个完全兼容Python 2.7的版本,搭配编码环境变量即可解决解码报错问题。


内容的提问来源于stack exchange,提问作者Paul Taylor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 14:36:03