Depois de pip instalar awscli==1.13.0
em um contêiner Docker baseado em python: 3.6.2 , a execução de qualquer comando aws retorna
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'
Revertido para awscli==1.12.0
e tudo funciona bem.
Parece que sua versão cli e botocore estão fora de sincronia de alguma forma. Para awscli v1.13.0, certifique-se de ter pelo menos o botocore v1.8.3.
Estou tendo exatamente o mesmo problema:
`` `[LOCAL] [ fcabral @ droideka : ~] $ sudo pip freeze | 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
Como @karimtabet disse, reverter para 1.12.0 funciona.
Exatamente o mesmo erro que @ cabral404 , usando:
aws-cli / 1.14.6
botocore / 1.8.12
Python / 2.7.12
Tenho o mesmo problema ao executar com meu usuário, se sudo é usado aws cli funciona bem, parece que tem problemas de permissão quando instalado de pacotes ou pip.
Minha solução alternativa é a seguinte:
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
Mais informações estão aqui http://docs.aws.amazon.com/cli/latest/userguide/awscli-install-bundle.html#install -bundle-user
Embora a reversão para uma versão anterior possa funcionar, as versões mais recentes que não funcionam devido a falhas nas importações parecem um problema de como o pacote awscli
foi instalado ou como os pacotes python em geral são gerenciados em seu sistema. Neste caso, provavelmente há outra versão do botocore em algum lugar que está tendo precedência sobre a que está sendo exibida na saída de pip freeze
.
Como @Danpiel menciona, remover todos os outros métodos de instalação e usar um instalador empacotado é uma solução possível, pois usa um virtualenv isolado para executar o aws cli.
Para quem ainda está enfrentando isso, forneça o seguinte:
1) Qual sistema operacional você está usando?
2) Como você instalou o pacote awscli
?
3) Como você tentou atualizar o pacote awscli
?
Isso corrigiu para mim:
$ 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
Eu também estou enfrentando o mesmo problema.
mesmo problema que @optimisticanshul
versão aws: awscli-1.14.19
botocore: botocore-1.8.23
python: Python 2.7.13
Gambiarra:
pip uninstall boto3 -y
pip uninstall boto -y
pip uninstall botocore -y
pip install botocore --upgrade
Resultado aws funciona
Estou enfrentando um problema semelhante. A única diferença é que quando tento acessá-lo como usuário root, recebo o erro, mas ao acessá-lo como usuário ec2, funciona perfeitamente.
Saída como 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"
}
}
Saída como usuário 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
botocore: 1.8.13
Também vendo o mesmo problema.
Linux: Arch Linux
Python: 3.6.4
aws-cli 1.14.40-1
botocore: 1.8.44-1
Tentei atualizar o botocore via pip, sem sucesso até agora.
Atualização: eu também tentei sudo pip install awscli --force-reinstall --upgrade
que foi mencionado em # 641, mas isso também não ajudou.
O mesmo problema aqui usando o Windows:
plataforma: win32
python: 3.5.2
awscli: 1.14.41
botocore: 1.8.45
Tentei as soluções alternativas sugeridas acima, com a desinstalação e reinstalação de awscli e botocore, e ainda estou recebendo a mensagem:
File "C:\python\Python3\Scripts\aws.cmd", line 50, in <module>
import awscli.clidriver
ImportError: No module named awscli.clidriver
Se você tiver o CLI instalado por meio de qualquer mecanismo diferente de pip (como um gerenciador de pacotes do Linux), você precisará desinstalá-lo também para certificar-se de limpar seu sistema antes de reinstalar. Para Windows, eu recomendo fortemente o uso do instalador que fornecemos aqui
mesmo aqui, mas corrigido com atualizações.
os que falharam
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": [
...
]
}
Ainda obtendo erros com a maioria das versões atuais:
awscli == 1.14.53
boto == 2.48.0
boto3 == 1.6.6
botocore == 1.9.6
Comando: aws ecr get-login --region $ AWS_DEFAULT_REGION
Imagem: Ubuntu - aws / codebuild / docker: 17.09.0
Traceback (última chamada mais recente):
Arquivo "/ usr / local / bin / aws", linha 19, em
import awscli.clidriver
Arquivo "/usr/local/lib/python2.7/dist-packages/awscli/clidriver.py", linha 24, em
de botocore.history import get_global_history_recorder
ImportError: Nenhum módulo denominado histórico
Encontrou uma solução de trabalho:
awscli == 1.11.157
boto3 == 1.6.7
botocore == 1.9.7
Parece que uma correção foi aplicada e as versões do boto3 e do botocore foram atualizadas. Quaisquer que sejam as atualizações feitas, parece que corrigiu o problema.
Parece que o was não consegue analisar o arquivo de configuração. Resolvi o problema criando um novo arquivo ~ / .aws / config.
Eu tive o mesmo problema na instalação do CentOS com o yum. Removi os pacotes com o yum e instalei o awscli com pip e agora tudo funciona bem.
Para aqueles que instalam do centos 7 com epel, awscli foi removido do epel e incluído no centos base repo. no entanto, as dependências mudaram, apenas remova os seguintes pacotes (se nada mais os usar)
python2-s3transfer python-colorama python2-botocore python2-rsa
em seguida, reinstale a partir do repo centos-base
Fechando o velho problema. Conforme mencionado, o problema é devido a versões mais antigas do botocore sendo usadas com a CLI. Contanto que você esteja instalando via pip ou qualquer outro método de instalação compatível , você obterá uma versão funcional da CLI.
Remova o pacote de botocore
pip uninstall botocore
instale o awscli novamente
pip install awscli
Agora funciona para mim
sudo -H pip install awscli --upgrade
@mariosotil você nos salvou!
Comentários muito úteis
Isso corrigiu para mim:
$ sudo -H pip install awscli --upgrade