После установки pip awscli==1.13.0
в контейнере Docker на основе python: 3.6.2 выполнение любых команд 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 и ботокора как-то не синхронизирована. Для awscli v1.13.0 убедитесь, что у вас установлен ботокор версии не ниже 1.8.3.
У меня такая же проблема:
`` [МЕСТНОЕ] [ fcabral @ droideka : ~] $ sudo pip freeze | egrep '(awscli | boto | boto3 | botocore)'
awscli == 1.14.5
бото == 2.48.0
boto3 == 1.4.8
ботокор == 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 , возврат к 1.12.0 работает.
Точно такая же ошибка, как у
aws-cli / 1.14.6
ботокоре / 1.8.12
Python / 2.7.12
У меня такая же проблема при запуске с моим пользователем, если используется sudo, aws cli работает нормально, кажется, у него проблемы с разрешением при установке из пакетов или pip.
Мое обходное решение выглядит так:
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
Дополнительная информация здесь http://docs.aws.amazon.com/cli/latest/userguide/awscli-install-bundle.html#install -bundle-user
Хотя возврат к более ранней версии может сработать, более новые версии не работают из-за сбоя импорта, что звучит как проблема с тем, как был установлен пакет awscli
или как пакеты python в целом управляются в вашей системе. В этом случае, вероятно, где-то есть другая версия ботокора, которая имеет приоритет над той, которая отображается в выводе pip freeze
.
Как упоминает @Danpiel, удаление всех других методов установки и использование связанного установщика является возможным решением, поскольку для запуска aws cli используется изолированный virtualenv.
Для тех, кто все еще сталкивается с этим, предоставьте следующее:
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
ботокорез: ботокоре-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 он работает нормально.
Вывод как ec2-пользователь
[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, пока безуспешно.
Обновление: я также пробовал sudo pip install awscli --force-reinstall --upgrade
который упоминался в # 641, но это тоже не помогло.
Такая же проблема здесь с использованием Windows:
платформа: win32
питон: 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
Если у вас есть CLI, установленный с помощью любого механизма, кроме pip (например, диспетчера пакетов Linux), вам нужно будет удалить его и там, чтобы убедиться, что вы очистили свою систему перед переустановкой. Для 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 список-экземпляров-контейнеров --cluster my_ecs_cluster
{
"containerInstanceArns": [
...
]
}
По-прежнему возникает ошибка с самыми последними версиями:
awscli == 1.14.53
бото == 2.48.0
boto3 == 1.6.6
ботокор == 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 import get_global_history_recorder
ImportError: нет модуля с именем history
Нашел рабочее решение:
awscli == 1.11.157
boto3 == 1.6.7
ботокор == 1.9.7
Похоже, было применено исправление и обновлены версии boto3 и botocore. Какие бы обновления они ни делали, похоже, проблема устранилась.
Похоже, что не удалось проанализировать файл конфигурации. Я решил проблему, создав новый файл ~ / .aws / config.
У меня была такая же проблема при установке CentOS с помощью yum. Я удалил пакеты с помощью yum и установил awscli с помощью pip, и теперь все работает нормально.
Для тех, кто устанавливал из centos 7 с помощью epel, awscli был удален из epel и включен в базовый репозиторий centos. однако зависимости изменились, просто удалите следующие пакеты (если больше ничего не использует)
python2-s3transfer python-colorama python2-botocore python2-rsa
затем переустановите из репозитория centos-base
Закрытие старого выпуска. Как уже упоминалось, проблема связана с тем, что с CLI используются более старые версии ботокора. Пока вы устанавливаете через pip или любые другие поддерживаемые методы установки , вы получите рабочую версию CLI.
Удалите пакет ботокора.
pip удалить ботокор
установить awscli еще раз
pip install awscli
Теперь это работает для меня
sudo -H pip install awscli --upgrade
@mariosotil ты нас спас!
Самый полезный комментарий
Это исправило это для меня:
$ sudo -H pip install awscli --upgrade