事象
複数台ある端末の一つ(Amazon Linux 2018.03)でaws-cliコマンド(例えば$ aws --version)を実行すると以下のエラーが発生。以前(それほど昔ではない)は使えていた。
Traceback (most recent call last):
File "/usr/bin/aws", line 19, in <module>
import awscli.clidriver
File "/usr/lib/python2.7/dist-packages/awscli/clidriver.py", line 19, in <module>
from botocore.hooks import AliasedEventEmitter
ImportError: cannot import name AliasedEventEmitter
環境
項目 | バージョン |
---|---|
OS | Amazon Linux AMI release 2018.03 |
aws cli | 1.15.83-1.49 |
(yumによる)botocore | 1.10.82 |
(pipによる)botocore | 1.10.6 |
原因と対策
(2018/11/08 追記) 正しい対処
どうしても aws cliを最新にしたかったので追加調査したところ以下で修正できました。
pipでインストールしていたbotocoreが古かったのが原因だったようです。
$ sudo pip install botocore==1.10.82
ダウングレード(非推奨)
aws-cliとbotocoreのダウングレードでも解決できます。
$ sudo yum downgrade aws-cli python27-botocore
※aws-cliとbotocoreは相互に依存性があるので同時に指定しないとダウングレードできません。
参考
AWS Developer Forums: AWS CLI not working on Amazon Linux ...