Aws-cli: clidriver في الإصدار 1.13.0 معطل

تم إنشاؤها على ٢٩ نوفمبر ٢٠١٧  ·  21تعليقات  ·  مصدر: aws/aws-cli

بعد تثبيت النقطة 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 و botocore الخاص بك غير متزامن إلى حد ما. بالنسبة لـ awscli v1.13.0 ، تأكد من أن لديك على الأقل botocore v1.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 ،

نفس الخطأ تمامًا مثل @ cabral404 ، باستخدام:

aws-cli / 1.14.6
بوتوكور / 1.8.12
بايثون / 2.7.12

واجهت نفس المشكلة عند التشغيل مع المستخدم الخاص بي ، إذا تم استخدام sudo ، فسيتم تشغيل aws cli بشكل جيد ، ويبدو أنه يواجه مشكلات في الأذونات عند تثبيته من الحزم أو النقطة.

يبدو الحل الخاص بي كما يلي:

  • قم بإزالة 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 بشكل عام على نظامك. في هذه الحالة ، من المحتمل أن يكون هناك إصدار آخر من botocore في مكان ما يكون له الأسبقية على الإصدار المعروض في الناتج pip freeze .

كما يذكر Danpiel إزالة جميع طرق التثبيت الأخرى واستخدام أداة التثبيت المجمعة هو حل ممكن حيث يستخدم Virtualenv معزولًا لتشغيل aws cli.

لأي شخص لا يزال يواجه هذا ، يرجى تقديم ما يلي:
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
botocore: botocore-1.8.23
بيثون: بايثون 2.7.13

الحل:

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

نتيجة أعمال AWS

أنا أواجه مشكلة مماثلة. الفرق الوحيد هو أنه عندما أحاول الوصول إليه كمستخدم جذر ، أحصل على الخطأ ، ولكن عند الوصول إليه كمستخدم 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@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
بايثون: 2.7.12
Linux: 4.9.76-3.78.amzn1.x86_64
بوتوكور: 1.8.13

كما نرى نفس المشكلة.

Linux: Arch Linux
بيثون: 3.6.4
aws-cli 1.14.40-1
بوتوكور: 1.8.44-1

حاولت ترقية botocore عبر النقطة ، ولكن دون جدوى حتى الآن.

تحديث: لقد جربت أيضًا sudo pip install awscli --force-reinstall --upgrade الذي تم ذكره في # 641 لكن ذلك لم يساعد أيضًا.

نفس المشكلة هنا باستخدام Windows:

المنصة: win32
بيثون: 3.5.2
أوسكلي: 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 مثبتًا عبر أي آلية أخرى غير النقطة (مثل مدير حزمة لينوكس) ، فستحتاج إلى إلغاء التثبيت هناك أيضًا للتأكد من تنظيف نظامك قبل إعادة التثبيت. بالنسبة لنظام التشغيل 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 list-container-الحوادث - 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

Traceback (آخر مكالمة أخيرة):
ملف "/ usr / local / bin / aws" ، السطر 19 ، بتنسيق
استيراد awscli.clidriver
ملف "/usr/local/lib/python2.7/dist-packages/awscli/clidriver.py" ، السطر 24 ، في
من استيراد botocore.history get_global_history_recorder
خطأ في الاستيراد: لا توجد وحدة باسم المحفوظات

العثور على حل عملي:
awscli == 1.11.157
boto3 == 1.6.7
بوتوكور == 1.9.7

يبدو أنه تم تطبيق الإصلاح وتم تحديث إصدارات boto3 و botocore. مهما كانت التحديثات التي قاموا بها ، يبدو أنها قد أصلحت المشكلة.

يبدو أن كان لا يمكن تحليل ملف التكوين. لقد قمت بحل المشكلة عن طريق إنشاء ملف ~ / .aws / config جديد.

لدي نفس المشكلة عند تثبيت CentOS مع yum. لقد قمت بإزالة الحزم مع yum وقمت بتثبيت awscli مع النقطة والآن كل شيء يعمل بشكل جيد.

بالنسبة لأولئك الذين يقومون بالتثبيت من centos 7 مع epel ، تمت إزالة awscli من epel وتم تضمينه في centos base repo. لكن تغيرت التبعيات ، ما عليك سوى إزالة الحزم التالية (إذا لم يستخدمها أي شيء آخر)

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

ثم إعادة التثبيت من الريبو centos-base

اغلاق القضية القديمة. كما ذكرنا ، ترجع المشكلة إلى استخدام إصدارات أقدم من botocore مع CLI. طالما أنك تقوم بالتثبيت عبر نقطة أو أي طرق تثبيت أخرى

قم بإزالة حزمة botocore
نقطة إلغاء تثبيت botocore

تثبيت أوسكلي مرة أخرى
نقطة تثبيت awscli

الآن يعمل بالنسبة لي

sudo -H pip install awscli - ترقية

mariosotil لقد

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات