بعد تثبيت النقطة 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 و 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 بشكل جيد ، ويبدو أنه يواجه مشكلات في الأذونات عند تثبيته من الحزم أو النقطة.
يبدو الحل الخاص بي كما يلي:
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 بشكل عام على نظامك. في هذه الحالة ، من المحتمل أن يكون هناك إصدار آخر من 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
الحل:
pip uninstall boto3 -y
pip uninstall boto -y
pip uninstall botocore -y
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 لقد
التعليق الأكثر فائدة
هذه ثابتة بالنسبة لي:
$ sudo -H pip install awscli --upgrade