Aws-cli: バージョン1.13.0のclidriverが壊れています

作成日 2017年11月29日  ·  21コメント  ·  ソース: aws/aws-cli

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戻り、すべてが正常に機能します。

最も参考になるコメント

これは私のためにそれを修正しました:

$ sudo -H pip install awscli --upgrade

全てのコメント21件

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を削除します
    また
  • remove aws-cliパッケージ( packman -R aws-cli )を削除します
  • 次に、awsバンドルを使用します
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

回避策:

  1. pip uninstall boto3 -y
  2. pip uninstall boto -y
  3. pip uninstall botocore -y
  4. 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あなたは私たちを救った!

このページは役に立ちましたか?
0 / 5 - 0 評価