Nachdem pip awscli==1.13.0
in einem Docker-Container basierend auf python:3.6.2 installiert hat, kehrt die Ausführung aller aws-Befehle zurück
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'
Zurück zu awscli==1.12.0
und alles funktioniert gut.
Klingt so, als ob Ihre Cli- und Botocore-Version irgendwie nicht synchron sind. Stellen Sie für awscli v1.13.0 sicher, dass Sie mindestens botocore v1.8.3 haben.
Ich habe genau das gleiche Problem:
```[LOCAL][ fcabral@droideka :~]$ sudo pip einfrieren | egrep '(awscli|boto|boto3|botocore)'
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
Wie @karimtabet sagte, funktioniert die Rückkehr zu 1.12.0.
Genau der gleiche Fehler wie @cabral404 , mit:
aws-cli/1.14.6
Botocore/1.8.12
Python/2.7.12
Habe das gleiche Problem bei der Ausführung mit meinem Benutzer, wenn sudo verwendet wird, läuft aws cli gut, es scheint Berechtigungsprobleme zu haben, wenn es aus Paketen oder Pip installiert wird.
Mein Workaround sieht so aus:
pip uninstall 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
Weitere Informationen finden Sie hier http://docs.aws.amazon.com/cli/latest/userguide/awscli-install-bundle.html#install -bundle-user
Während das Zurücksetzen auf eine frühere Version funktionieren kann, funktionieren neuere Versionen aufgrund von fehlgeschlagenen Importen nicht wie ein Problem mit der Installation des awscli
Pakets oder der allgemeinen Verwaltung von Python-Paketen auf Ihrem System. In diesem Fall gibt es wahrscheinlich irgendwo eine andere Version von botocore, die Vorrang vor der in der Ausgabe von pip freeze
angezeigten hat.
Wie @Danpiel erwähnt, ist das Entfernen aller anderen Installationsmethoden und die Verwendung eines gebündelten Installationsprogramms eine mögliche Lösung, da eine isolierte Virtualenv zum Ausführen der AWS-Cli verwendet wird.
Für alle, die immer noch damit konfrontiert sind, geben Sie bitte Folgendes an:
1) Welches Betriebssystem verwendest du?
2) Wie haben Sie das Paket awscli
installiert?
3) Wie haben Sie versucht, das awscli
Paket zu aktualisieren?
Das hat es für mich behoben:
$ 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
ich stehe auch vor dem gleichen Problem.
gleiches Problem wie @optimisticanshul
AWS-Version: awscli-1.14.19
botocore: botocore-1.8.23
Python: Python 2.7.13
Problemumgehung:
pip uninstall boto3 -y
pip uninstall boto -y
pip uninstall botocore -y
pip install botocore --upgrade
Ergebnis aws funktioniert
Ich stehe vor einem ähnlichen Problem. Der einzige Unterschied besteht darin, dass ich beim Versuch, als Root-Benutzer darauf zuzugreifen, den Fehler erhalte, aber wenn ich als ec2-Benutzer darauf zugreife, funktioniert es einwandfrei.
Ausgabe als ec2-Benutzer
[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"
}
}
Ausgabe als Root-Benutzer
[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
Botocore: 1.8.13
Sehe auch das gleiche Problem.
Linux: Arch Linux
Python: 3.6.4
aws-cli 1.14.40-1
Botocore: 1.8.44-1
Versucht, Botocore über Pip zu aktualisieren, bisher erfolglos.
Update: Ich habe auch sudo pip install awscli --force-reinstall --upgrade
ausprobiert, was in #641 erwähnt wurde, aber auch das hat nicht geholfen.
Gleiches Problem hier mit Windows:
Plattform: win32
Python: 3.5.2
awscli: 1.14.41
Botocore: 1.8.45
Ich habe die oben vorgeschlagenen Problemumgehungen mit der Deinstallation und Neuinstallation von awscli und botocore ausprobiert und erhalte immer noch die Meldung:
File "C:\python\Python3\Scripts\aws.cmd", line 50, in <module>
import awscli.clidriver
ImportError: No module named awscli.clidriver
Wenn Sie die CLI über einen anderen Mechanismus als pip installiert haben (z. B. einen Linux-Paketmanager), müssen Sie auch dort deinstallieren, um sicherzustellen, dass Sie Ihr System vor der Neuinstallation bereinigen. Für Windows empfehle ich dringend, das Installationsprogramm zu verwenden, das wir hier bereitstellen
das gleiche hier, aber mit Upgrades behoben.
gescheiterte
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": [
...
]
}
Immer noch Fehler bei den meisten aktuellen Versionen:
awscli==1.14.53
boto==2.48.0
boto3==1.6.6
botocore==1.9.6
Befehl: aws ecr get-login --region $AWS_DEFAULT_REGION
Bild: Ubuntu - aws/codebuild/ docker:17.09.0
Traceback (letzter Anruf zuletzt):
Datei "/usr/local/bin/aws", Zeile 19, in
awscli.clidriver importieren
Datei "/usr/local/lib/python2.7/dist-packages/awscli/clidriver.py", Zeile 24, in
aus botocore.history import get_global_history_recorder
ImportError: Kein Modul namens history
Habe eine funktionierende Lösung gefunden:
awscli==1.11.157
boto3==1.6.7
botocore==1.9.7
Es sieht so aus, als ob ein Fix angewendet und die boto3- und botocore-Versionen aktualisiert wurden. Welche Updates auch immer sie gemacht haben, es scheint das Problem behoben zu haben.
Es sieht so aus, als ob das was die Konfigurationsdatei nicht analysieren kann. Ich habe das Problem gelöst, indem ich eine neue ~/.aws/config-Datei erstellt habe.
Ich hatte das gleiche Problem bei der Installation von CentOS mit yum. Ich habe die Pakete mit yum entfernt und awscli mit pip installiert und jetzt funktioniert alles gut.
Für diejenigen, die von Centos 7 mit Epel installieren, wurde awscli aus Epel entfernt und in das Centos-Basisrepo aufgenommen. die Abhängigkeiten haben sich jedoch geändert, entfernen Sie einfach die folgenden Pakete (wenn sie von nichts anderem verwendet werden)
python2-s3transfer python-colorama python2-botocore python2-rsa
dann vom centos-base Repository neu installieren
Altes Thema abschließen. Wie bereits erwähnt, liegt das Problem daran, dass ältere Versionen von Botocore mit der CLI verwendet werden. Solange Sie über pip oder andere unterstützte Installationsmethoden installieren , erhalten Sie eine funktionierende Version der CLI.
Entfernen Sie das Botocore-Paket
pip deinstallieren botocore
awscli erneut installieren
pip install awscli
Jetzt funktioniert es bei mir
sudo -H pip install awscli --upgrade
@mariosotil du hast uns gerettet!
Hilfreichster Kommentar
Das hat es für mich behoben:
$ sudo -H pip install awscli --upgrade