python:3.6.2に基づくDockerコンテナにawscli==1.13.0
をインストールした後、awsコマンドを実行すると
Traceback (most recent call last):
File "/usr/local/bin/aws", line 19, in <module>
import awscli.clidriver
File "/usr/local/lib/python3.6/site-packages/awscli/clidriver.py", line 24, in <module>
from botocore.history import get_global_history_recorder
ModuleNotFoundError: No module named 'botocore.history'
awscli==1.12.0
戻り、すべてが正常に機能します。
cliとbotocoreのバージョンが何らかの形で同期していないようです。 awscli v1.13.0の場合、少なくともbotocorev1.8.3があることを確認してください。
私はまったく同じ問題を抱えています:
`` `[LOCAL] [ fcabral @ droideka :〜] $ sudo
awscli == 1.14.5
boto == 2.48.0
boto3 == 1.4.8
botocore == 1.8.9
```[LOCAL][fcabral<strong i="12">@droideka</strong>:~]$ aws help
Traceback (most recent call last):
File "/usr/local/bin/aws", line 19, in <module>
import awscli.clidriver
File "/usr/local/lib/python2.7/dist-packages/awscli/clidriver.py", line 24, in <module>
from botocore.history import get_global_history_recorder
ImportError: No module named history
@karimtabetが言ったように、
以下を使用して、
aws-cli / 1.14.6
botocore / 1.8.12
Python / 2.7.12
ユーザーと一緒に実行したときに同じ問題が発生しました。sudoを使用するとawscliが正常に実行され、パッケージまたはpipからインストールしたときに権限の問題があるようです。
私の回避策は次のようになります。
pip uninstall awscli
してpipからawscliを削除しますpackman -R aws-cli
)を削除しますcurl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
unzip awscli-bundle.zip
./awscli-bundle/install -b ~/bin/aws
export PATH=~/bin:$PATH
詳細については、こちらをご覧くださいhttp://docs.aws.amazon.com/cli/latest/userguide/awscli-install-bundle.html#install -bundle-user
以前のバージョンに戻すことはできますが、インポートが失敗したために新しいバージョンが機能しないことは、 awscli
パッケージのインストール方法、または一般的なPythonパッケージのシステムでの管理方法に問題があるように思われます。 この場合、おそらくどこかに別のバージョンのbotocoreがあり、 pip freeze
出力に表示されているバージョンよりも優先されます。
@Danpielが言及しているように、他のすべてのインストール方法を削除し、バンドルされたインストーラーを使用することは、分離されたvirtualenvを使用してawscliを実行するための可能な解決策です。
まだこれに遭遇している人のために、以下を提供してください:
1)どのオペレーティングシステムを使用していますか?
2) awscli
パッケージをどのようにインストールしましたか?
3) awscli
パッケージをどのように更新しようとしましたか?
これは私のためにそれを修正しました:
$ sudo -H pip install awscli --upgrade
aws ec2 describe-regions --query 'Regions[].{Name:RegionName}' --output text --region us-east-1
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 24, in <module>
from botocore.history import get_global_history_recorder
ImportError: No module named history
私も同じ問題に直面しています。
@optimisticanshulと同じ問題
awsバージョン:awscli-1.14.19
botocore:botocore-1.8.23
python:Python 2.7.13
回避策:
pip uninstall boto3 -y
pip uninstall boto -y
pip uninstall botocore -y
pip install botocore --upgrade
結果awsは機能します
私は同様の問題に直面しています。 唯一の違いは、rootユーザーとしてアクセスしようとするとエラーが発生することですが、ec2-userとしてアクセスすると問題なく動作します。
ec2-userとして出力
[ec2-user@ip-x-x-x-x ~]$ aws route53 change-resource-record-sets --hosted-zone-id $PrivateHostedZoneId --change-batch file:///home/ec2-user/change.json
{
"ChangeInfo": {
"Status": "PENDING",
"Comment": "Create route53 DNS entry at instance boot up",
"SubmittedAt": "2018-01-17T12:30:45.534Z",
"Id": "/change/C1IG3ETCO6MGVW"
}
}
rootユーザーとして出力
[root@ip-x-x-x-x ec2-user]# aws route53 change-resource-record-sets --hosted-zone-id $PrivateHostedZoneId --change-batch file:///home/ec2-user/change.json
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 24, in <module>
from botocore.history import get_global_history_recorder
ImportError: No module named history
aws-cli:1.14.9
Python:2.7.12
Linux:4.9.76-3.78.amzn1.x86_64
ボトコア:1.8.13
同じ問題も見られます。
Linux:Arch Linux
Python:3.6.4
aws-cli 1.14.40-1
ボトコア:1.8.44-1
これまでのところ、pipを介してbotocoreをアップグレードしようとしましたが失敗しました。
更新:#641で言及されたsudo pip install awscli --force-reinstall --upgrade
も試しましたが、それも役に立ちませんでした。
ここでWindowsを使用した同じ問題:
プラットフォーム:win32
Python:3.5.2
awscli:1.14.41
ボトコア:1.8.45
awscliとbotocoreのアンインストールと再インストールを使用して、上記の推奨される回避策を試しましたが、まだメッセージが表示されます。
File "C:\python\Python3\Scripts\aws.cmd", line 50, in <module>
import awscli.clidriver
ImportError: No module named awscli.clidriver
pip以外のメカニズム(Linuxパッケージマネージャーなど)を介してCLIをインストールしている場合は、再インストールする前にシステムをクリーンアップするために、CLIもアンインストールする必要があります。 Windowsの場合、ここで提供するインストーラーを使用することを強くお勧めし
ここでも同じですが、アップグレードで修正されています。
失敗したもの
boto (2.48.0)
boto3 (1.4.7)
botocore (1.7.1)
pip install --upgrade boto3
pip install --upgrade botocore
pip install --upgrade awscli
`` `
aws ecs list-container-instances --cluster my_ecs_cluster
{{
"containerInstanceArns":[
..。
]
}
現在のほとんどのバージョンでまだエラーが発生しています:
awscli == 1.14.53
boto == 2.48.0
boto3 == 1.6.6
botocore == 1.9.6
コマンド:aws ecr get-login --region $ AWS_DEFAULT_REGION
画像:Ubuntu-aws / codebuild / docker:17.09.0
トレースバック(最後の最後の呼び出し):
ファイル "/ usr / local / bin / aws"、19行目、
awscli.clidriverをインポートします
ファイル "/usr/local/lib/python2.7/dist-packages/awscli/clidriver.py"、24行目
botocore.historyからインポートget_global_history_recorder
ImportError:historyという名前のモジュールがありません
実用的な解決策を見つけました:
awscli == 1.11.157
boto3 == 1.6.7
botocore == 1.9.7
修正が適用され、boto3とbotocoreのバージョンが更新されたようです。 彼らが行った更新が何であれ、それは問題を修正したようです。
構成ファイルを解析できないようです。 新しい〜/ .aws / configファイルを作成して問題を解決しました。
CentOSをyumと一緒にインストールしても同じ問題が発生しました。 yumでパッケージを削除し、pipでawscliをインストールしましたが、すべて正常に動作します。
Centos 7からepelを使用してインストールする場合、awscliはepelから削除され、centosベースリポジトリに含まれています。 ただし、依存関係が変更された場合は、次のパッケージを削除してください(他に何も使用されていない場合)
python2-s3transfer python-colorama python2-botocore python2-rsa
次に、centosベースのリポジトリから再インストールします
古い問題を解決します。 前述のように、この問題は、CLIで使用されている古いバージョンのbotocoreが原因です。 pipまたはその他のサポートされているインストール方法で
ボトコアパッケージを削除します
pipアンインストールbotocore
awscliを再度インストールします
pip install awscli
今それは私のために働く
sudo -H pip install awscli --upgrade
@mariosotilあなたは私たちを救った!
最も参考になるコメント
これは私のためにそれを修正しました:
$ sudo -H pip install awscli --upgrade