الجرد الديناميكي: ec2.py
ansible 2.1.0.0
Python 2.7.10
نظام التشغيل Mac OS X 10.11.6
يؤدي تشغيل ec2.py المستقل إلى حدوث خطأ في الاستيراد.
python ec2.py --list
Traceback (most recent call last):
File "ec2.py", line 134, in <module>
from ansible.module_utils import ec2 as ec2_utils
ImportError: No module named ansible.module_utils
قائمة الأمثلة
خطأ أعلاه.
إذا قمت بالتعليق خارج السطر from ansible.module_utils import ec2 as ec2_utils
فإن النص يعمل بشكل جيد.
تم تقديم الخط في # 16606.
jonatanblue تمت إضافة الاستيراد بواسطة https://github.com/ansible/ansible/commit/59e499f8f00e4068b68c147b8f3002535ad706e0 والذي يبدو أنه محاولة لتطبيع كود إعداد عميل boto.
المعنى الضمني هو أنه من أجل استخدام البرنامج النصي للمخزون ، يجب أن يكون لديك ansible مثبتًا على الجهاز بحيث يكون "ansible" متاحًا في مسار Python لمترجم Python الافتراضي الخاص بك. نخطط للاستفادة بشكل أكبر من المكتبات الثابتة في نصوص المخزون الديناميكي بمرور الوقت ، لذلك لن أعود إلى هذا التغيير.
من الرائع سماع أنه ليس خطأ. هل هذا موصوف في مكان ما في الوثائق؟
اكتشفت سبب ذلك في نهايتي: تثبيت Ansible باستخدام brew
جعل ansible غير متاح لمترجم Python الخاص بي.
لإصلاح ذلك ، قمت بإلغاء تثبيت Ansible وقمت بتثبيته مرة أخرى باستخدام نقطة:
brew uninstall ansible
pip install ansible
الآن متاح:
python -c "import ansible;print(ansible.__version__)"
2.1.1.0
ويعمل البرنامج النصي كما هو متوقع.
قد يكون من الجدير ذكر هذا في مكان ما في التوثيق ، أو جعل البرنامج النصي يعرض خطأ إعلاميًا إذا كان ansible
غير متوفر في مسار Python.
التعليق الأكثر فائدة
من الرائع سماع أنه ليس خطأ. هل هذا موصوف في مكان ما في الوثائق؟
اكتشفت سبب ذلك في نهايتي: تثبيت Ansible باستخدام
brew
جعل ansible غير متاح لمترجم Python الخاص بي.لإصلاح ذلك ، قمت بإلغاء تثبيت Ansible وقمت بتثبيته مرة أخرى باستخدام نقطة:
الآن متاح:
ويعمل البرنامج النصي كما هو متوقع.
قد يكون من الجدير ذكر هذا في مكان ما في التوثيق ، أو جعل البرنامج النصي يعرض خطأ إعلاميًا إذا كان
ansible
غير متوفر في مسار Python.