Aws-cli: clidriver en la versión 1.13.0 está roto

Creado en 29 nov. 2017  ·  21Comentarios  ·  Fuente: aws/aws-cli

Después de instalar pip awscli==1.13.0 en un contenedor Docker basado en python: 3.6.2 , ejecutar cualquier comando aws devuelve

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'

Volvió a awscli==1.12.0 y todo funciona bien.

Comentario más útil

Esto me lo arregló:

$ sudo -H pip install awscli --upgrade

Todos 21 comentarios

Parece que su versión cli y botocore no están sincronizadas de alguna manera. Para awscli v1.13.0, asegúrese de tener al menos botocore v1.8.3.

Tengo exactamente el mismo 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 dijo @karimtabet , volver a 1.12.0 funciona.

Exactamente el mismo error que @ cabral404 , usando:

aws-cli / 1.14.6
botocore / 1.8.12
Python / 2.7.12

Tengo el mismo problema cuando lo ejecuto con mi usuario, si se usa sudo, aws cli funciona bien, parece que tiene problemas de permisos cuando se instala desde paquetes o pip.

Mi solución se ve así:

  • Elimine aws cli de pip con pip uninstall awscli
    o
  • Eliminar eliminar paquetes aws-cli (como packman -R aws-cli )
  • Entonces usa el paquete 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

Más información aquí http://docs.aws.amazon.com/cli/latest/userguide/awscli-install-bundle.html#install -bundle-user

Si bien volver a una versión anterior puede funcionar, las versiones más nuevas que no funcionan debido a fallas en las importaciones suena como un problema con la forma en que se instaló el paquete awscli o cómo se administran los paquetes de Python en general en su sistema. En este caso, probablemente haya otra versión de botocore en algún lugar que tenga prioridad sobre la que se muestra en la salida de pip freeze .

Como @Danpiel menciona, eliminar todos los demás métodos de instalación y usar un instalador incluido es una posible solución, ya que usa un virtualenv aislado para ejecutar aws cli.

Para cualquiera que todavía se encuentre con esto, proporcione lo siguiente:
1) ¿Qué sistema operativo estás usando?
2) ¿Cómo instaló el paquete awscli ?
3) ¿Cómo intentó actualizar el paquete awscli ?

Esto me lo arregló:

$ 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

También me enfrento al mismo problema.

mismo problema que @optimisticanshul
versión de aws: awscli-1.14.19
botocore: botocore-1.8.23
python: Python 2.7.13

Solución alterna:

  1. pip uninstall boto3 -y
  2. pip uninstall boto -y
  3. pip uninstall botocore -y
  4. pip install botocore --upgrade

Resultado aws funciona

Estoy enfrentando un problema similar. La única diferencia es que cuando intento acceder a él como usuario root, aparece el error, pero cuando accedo a él como usuario ec2, funciona bien.

Salida 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"
    }
}

Salida como usuario 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

También viendo el mismo problema.

Linux: Arch Linux
Python: 3.6.4
aws-cli 1.14.40-1
botocore: 1.8.44-1

Intenté actualizar botocore a través de pip, sin éxito hasta ahora.

Actualización: también probé sudo pip install awscli --force-reinstall --upgrade que se mencionó en el # 641, pero eso tampoco ayudó.

El mismo problema aquí usando Windows:

plataforma: win32
pitón: 3.5.2
awscli: 1.14.41
botocore: 1.8.45

Probé las soluciones alternativas sugeridas anteriormente, con la desinstalación y reinstalación de awscli y botocore, y todavía recibo el mensaje:

  File "C:\python\Python3\Scripts\aws.cmd", line 50, in <module>
    import awscli.clidriver
ImportError: No module named awscli.clidriver

Si tiene la CLI instalada a través de cualquier mecanismo que no sea pip (como un administrador de paquetes de Linux), deberá desinstalar allí también para asegurarse de limpiar su sistema antes de reinstalar. Para Windows, recomiendo encarecidamente utilizar el instalador que proporcionamos aquí

Lo mismo aquí pero arreglado con actualizaciones.
los fallidos

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 lista-contenedor-instancias --cluster my_ecs_cluster
{
"containerInstanceArns": [

...
]
}

Sigo recibiendo errores con la mayoría de las versiones actuales:
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
Imagen: Ubuntu - aws / codebuild / docker: 17.09.0

Rastreo (llamadas recientes más última):
Archivo "/ usr / local / bin / aws", línea 19, en
importar awscli.clidriver
Archivo "/usr/local/lib/python2.7/dist-packages/awscli/clidriver.py", línea 24, en
de botocore.history importar get_global_history_recorder
ImportError: ningún módulo llamado historial

Encontré una solución de trabajo:
awscli == 1.11.157
boto3 == 1.6.7
botocore == 1.9.7

Parece que se aplicó una solución y se actualizaron las versiones boto3 y botocore. Independientemente de las actualizaciones que hicieron, parece haber solucionado el problema.

Parece que no se puede analizar el archivo de configuración. Resolví el problema creando un nuevo archivo ~ / .aws / config.

Tuve el mismo problema al instalar CentOS con yum. Eliminé los paquetes con yum e instalé awscli con pip y ahora todo funciona bien.

Para aquellos que instalan desde centos 7 con epel, awscli se eliminó de epel y se incluyó en el repositorio base de centos. sin embargo, las dependencias cambiaron, simplemente elimine los siguientes paquetes (si nada más lo usa)

python2-s3transfer python-colorama python2-botocore python2-rsa

luego reinstalar desde el repositorio centos-base

Cerrando problema antiguo. Como se mencionó, el problema se debe a que se utilizan versiones anteriores de botocore con la CLI. Siempre que esté instalando a través de pip o cualquier otro método de instalación compatible , obtendrá una versión funcional de la CLI.

Retire el paquete botocore
pip desinstalar botocore

instalar awscli de nuevo
pip instalar awscli

Ahora funciona para mi

sudo -H pip install awscli --upgrade

@mariosotil ¡nos salvaste!

¿Fue útil esta página
0 / 5 - 0 calificaciones