اذهب إلى المحتوى
  • 0

كيف أحل مشكلة إعادة استدعاء وحدة في بايثون؟

ahmed1990

السؤال

أريد أن أعيد استدعاء وحدة معينة في سكربت بايثون لكن كلما أقوم بإعادة الاستدعاء احصل على رسالة الخطأ التالية:

NameError: name 'reload' is not defined

على الرغم من أن نفس السكربت اشتغل على حاسوبي الآخر دون مشاكل فما سبب هذه المشكلة؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

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

reload(my.module)

لكن في الإصدارات الحديثة للبايثون حدثت عدّة تغييرات في بايثون فمثلا لو كنت تستخدم الإصدار 3.2 و 3.3 فيجب عليك في هذه الحالة استدعاء مكتبة imp ومن ثم استخدام دالة reload، لإعادة تحميل الوحدة كما في المثال التالي:

import imp  
imp.reload(module)  

وفي الإصدار 3.4 فما فوق يجب استدعاء دالة reload من وحدة importlib.
أي أن حل هذه المشكلة هو التأكد من إصدار بايثون الذي يعمل عليه السكربت.
المصدر

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...