Watchdog: أعطال watchmedo: ModuleNotFoundError: لا توجد وحدة باسم "yaml"

تم إنشاؤها على ١٧ مايو ٢٠٢٠  ·  6تعليقات  ·  مصدر: gorakhargosh/watchdog

يبدو أن pip install watchdog لم يقم بتثبيت pyyaml.

سيكون من الرائع لو لم يحاول watchmedo حتى استيراد هذه الحزمة إذا لم يكن هناك ملف yaml لقراءته أيضًا ، وهذا هو حالتي.

watchmedo

التعليق الأكثر فائدة

حسنًا .. وعندما أقوم بتثبيت pyyaml ​​(والذي كان غير سار ، لأن pip install yaml لا يعمل لأن الحزمة والوحدة هما اسمان مختلفان) ، فإنه يتعطل مع ModuleNotFoundError: No module named 'argh' .

يبدو أن تثبيت argh قد نجح بالرغم من ذلك.

ال 6 كومينتر

حسنًا .. وعندما أقوم بتثبيت pyyaml ​​(والذي كان غير سار ، لأن pip install yaml لا يعمل لأن الحزمة والوحدة هما اسمان مختلفان) ، فإنه يتعطل مع ModuleNotFoundError: No module named 'argh' .

يبدو أن تثبيت argh قد نجح بالرغم من ذلك.

أرى كلتا الحزمتين متضمنتين كطلبات_إضافية ، مما يجعل الأمر يبدو وكأنه قرار واع. لماذا هذا؟

لقد واجهت هذا الخطأ أيضًا عند محاولة تشغيل watchmedo بعد التثبيت ببساطة باستخدام pip install watchdog .
كما هو مذكور في README ، يعد watchmedo نصًا اختياريًا ويمكن تثبيت تبعياته بـ pip install watchdog[watchmedo] .

python -m pip install watchdog[watchmedo]

هو الأمر الجيد الذي يجب استخدامه لتثبيت watchmedo وتوابعه.

BoboTiG حسنًا ، هذا ليس مفيدًا جدًا. لماذا لا تقوم بتثبيت التبعيات افتراضيًا مثل جميع الحزم الأخرى في العالم؟ وإذا كنت تستخدم الأمر البسيط فقط ، فلماذا يتعطل بشدة بدلاً من إخبارك بشيء مفيد؟

watchmedo في حزم إضافية منذ # 297. هذا عن قصد أنه لم يعد قابلاً للتثبيت عبر python -m pip install watchdog بسيط.

إذا كنت تريد watchmedo ، فأنت تقوم بتثبيت الحزمة الإضافية. وسيتم تثبيت التبعيات أيضًا.

بالنسبة للرسالة الثانية ، يمكننا تحسين الوضع قليلاً هنا عن طريق تخطي ImportError عندما لا يتم تثبيت yaml . سيعمل عندما لا يستخدم المرء yaml على الإطلاق.

أما "الانهيار": فهو ليس تحطمًا. رسالة الخطأ واضحة تمامًا على الرغم من :)

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