حل مشكلة ModuleNotFoundError في بايثون

حل مشكلة ModuleNotFoundError في بايثون

ما معنى الخطأ ModuleNotFoundError؟

عند محاولة استيراد مكتبة أو وحدة في بايثون لم يتم العثور عليها، يظهر الخطأ التالي:

ModuleNotFoundError: No module named 'اسم_المكتبة'

هذا الخطأ يعني أن بايثون بحث عن الوحدة التي تحاول استيرادها ولم يجدها في أي من المسارات المعروفة لديه. السبب الشائع هو أنك لم تثبت المكتبة بعد، أو أن هناك خطأ في كتابة اسمها.


الفرق بين ModuleNotFoundError و ImportError

ImportError يظهر عندما يجد بايثون الوحدة، لكنه يفشل في تحميلها لسبب ما (مثل خطأ داخلي في الكود).
أما ModuleNotFoundError فهو حالة خاصة من ImportError تظهر عندما لا يتم العثور على الوحدة أساسًا.

مثال:

import doesnotexist
# ModuleNotFoundError

لكن:

from math import not_a_function
# ImportError

التأكد من كتابة اسم الحزمة أو الملف بشكل صحيح

أحد أكثر الأسباب شيوعًا لهذا الخطأ هو الخطأ الإملائي. تأكد أن الاسم مكتوب تمامًا كما هو مسجل في PyPI أو في اسم الملف.

مثال:

import numppy  # خطأ
import numpy   # صحيح

استخدم النسخ واللصق من الموقع الرسمي للحزمة بدلًا من الكتابة اليدوية لتجنب الأخطاء.


التحقق من تثبيت الحزمة المطلوبة

قبل أن تفترض أن هناك مشكلة، تأكد من أن الحزمة مثبّتة. يمكنك استخدام الأمر التالي:

pip list

أو:

pip show اسم_الحزمة

إذا لم تظهر، فذلك يعني أن الحزمة غير مثبتة أصلًا.


تثبيت الحزمة المفقودة باستخدام pip

لحل المشكلة، قم بتثبيت الحزمة. استخدم:

pip install اسم_الحزمة

إذا كان لديك أكثر من إصدار بايثون، تأكد أنك تستخدم pip الصحيح:

python3 -m pip install اسم_الحزمة

التأكد من أنك تستخدم البيئة الصحيحة (Python Environment)

قد تكون الحزمة مثبتة في بيئة افتراضية أخرى، أو تم التثبيت من حساب مختلف. تحقق من المسار الحالي الذي يستخدمه بايثون:

import sys
print(sys.executable)

تأكد من أن هذا هو نفس المسار الذي تستخدمه لتثبيت الحزم.


استخدام pip المناسب لإصدار بايثون

أحيانًا يكون عندك أكثر من بايثون على الجهاز. مثلاً، pip يتبع python2 بينما pip3 يتبع python3. لذلك استخدم:

python3 -m pip install اسم_الحزمة

أو:

py -m pip install اسم_الحزمة

إذا كنت على ويندوز.


التعامل مع باقات النظام مقابل باقات المستخدم

إذا واجهت مشكلة صلاحيات عند التثبيت (PermissionError)، يمكن أن تستخدم:

pip install --user اسم_الحزمة

هذا يثبت الحزمة فقط للمستخدم الحالي دون الحاجة لصلاحيات مدير النظام.


هل الحزمة جزء من بايثون نفسه أم حزمة خارجية؟

بعض المطورين يعتقدون أن مكتبات شهيرة مثل requests أو pandas تأتي مع بايثون، لكن الحقيقة أنها حزم خارجية يجب تثبيتها يدويًا.


وجود ملفات بنفس اسم الحزمة تسبب تعارض

إذا أنشأت ملفًا في مشروعك اسمه json.py أو random.py ثم حاولت استيراد json أو random، فسيظن بايثون أنك تحاول استيراد الملف المحلي، مما يؤدي إلى تعارض أو خطأ.

تأكد ألا يكون اسم أي ملف في مشروعك هو نفسه اسم مكتبة مشهورة.


تجربة التثبيت من جديد بعد حذف الحزمة

في بعض الأحيان، تتعرض الحزمة للتلف أو لملفات غير مكتملة، ويمكن حل المشكلة بحذف الحزمة ثم إعادة تثبيتها:

pip uninstall اسم_الحزمة
pip install اسم_الحزمة

التحقق من إصدار بايثون

بعض الحزم لا تدعم كل الإصدارات. على سبيل المثال، بعض الحزم تعمل فقط مع Python 3.7 فما فوق. تحقق من إصدارك باستخدام:

python --version

إذا كانت الحزمة غير متوافقة مع إصدارك، ستحتاج إلى الترقية أو استخدام إصدار مختلف.


التعامل مع الحزم غير المدعومة أو القديمة

إذا كانت الحزمة غير موجودة في PyPI، أو لم تعد مدعومة، قد تحتاج إلى تثبيتها يدويًا من GitHub أو من ملف tar.gz، أو البحث عن بديل حديث.


البحث عن الحلول باستخدام اسم الخطأ

عند فشل كل شيء، انسخ رسالة الخطأ كاملة وابحث عنها في Google أو Stack Overflow. تأكد من تضمين اسم الحزمة، إصدار بايثون، ونظام التشغيل في عملية البحث.

حول المحتوى:

تعرف على الأسباب الشائعة لظهور الخطأ ModuleNotFoundError في بايثون وكيفية حلّه بشكل عملي. شرح شامل لتثبيت الحزم، التأكد من البيئة، حل التعارضات، وتفادي الأخطاء المستقبلية.