Aws-cli: clidriver в версии 1.13.0 не работает

Созданный на 29 нояб. 2017  ·  21Комментарии  ·  Источник: aws/aws-cli

После установки 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 и все работает нормально.

Самый полезный комментарий

Это исправило это для меня:

$ sudo -H pip install awscli --upgrade

Все 21 Комментарий

Похоже, ваша версия 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.

Мое обходное решение выглядит так:

  • Удалите aws cli из пункта с помощью pip uninstall awscli
    или
  • Удалить удалить пакеты 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 в целом управляются в вашей системе. В этом случае, вероятно, где-то есть другая версия ботокора, которая имеет приоритет над той, которая отображается в выводе 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

Обходной путь:

  1. pip uninstall boto3 -y
  2. pip uninstall boto -y
  3. pip uninstall botocore -y
  4. 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 ты нас спас!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги