s3cmd ImportError:没有名为S3.Exceptions的模块

安装并尝试运行s3cmd 1.0.0后收到错误

s3cmd -h Problem: ImportError: No module named S3.Exceptions S3cmd: unknown version. Module import problem? Traceback (most recent call last): File "/usr/bin/s3cmd", line 1995, in <module> from S3.Exceptions import * ImportError: No module named S3.Exceptions Your sys.path contains these entries: 

升级到最新的Amazon Linux发行版2015.03.0后出现此错误

看起来像是发生了错误,因为python2.7现在是Amazon Linux 2015.03.0+中的默认python版本如果将python更改回2.6并运行s3cmd,它应该可以正常工作

 update-alternatives --set python /usr/bin/python2.6 s3cmd -h 

运行s3cmd命令后,可以将python放回到yum和其他实用程序的2.7:

 update-alternatives --set python /usr/bin/python2.7 yum install <package> 
 vi /usr/bin/s3cmd 

在第一行添加2.6,所以它看起来像:

 #!/usr/bin/python2.6 

保存文件和s3cmd将工作。 只要你的系统上有/usr/bin/python2.6

我遇到了与ImportError: No module named S3.ExitCodes类似的错误,但模块名称不同: ImportError: No module named S3.ExitCodes

在我的情况下,我可以这样解决问题: yum install python-pip ,然后pip install s3cmd 。 之后s3cmd工作正常。

以前的答案都不适合我,但是从sourcegraph aws-cli dockerfile复制了几行:

FROM python:2
运行apt-get update -q
运行apt-get install -qy python -pip groff-base
运行pip安装awscli