حل مشكلة ModuleNotFoundError: No module named MySQLdb
يُعد MySQL أحد أكثر الخيارات كفاءة للاستخدام مع Python. تتيح لك وحدة Python المسماة “mysqldb” ربط تطبيق Python الخاص بك بقاعدة بيانات MySQL. إذا لم تكن هذه الوحدة مثبتة على نظامك، فسيظهر الخطأ “no module named ‘mysqldb’”.

ستتناول هذه المقالة الأسباب المحتملة والحلول لإصلاح الخطأ “no module named mysqldb”.
لماذا يحدث هذا الخطأ؟
تعتمد وحدة Python إما على حزمة واحدة أو حزم متعددة. إذا لم يتم تثبيت إحدى الحزم المرتبطة بـ “mysqldb”، وحاولت استيراد الوحدة، فسيظهر الخطأ “no module named mysqldb”.
يوضح المقتطف التالي أننا نحاول الاستيراد ولكن الخطأ قد حدث:

الحل: تثبيت “MySQLdb”
تتوفر وحدة “MySQLdb” عبر PIP، وهو مدير حزم يعتمد على Python. تأكد من تثبيت PIP على نظامك. يتم عرض الحل الكامل في الخطوات التالية:
الخطوة 1: تثبيت PIP
يمكن تثبيت PIP على Linux باستخدام مجموعة الأوامر التالية:
$ sudo apt install python3-pip # لتوزيعات Debian و Ubuntu $ sudo yum install python3-pip # لـ CentOS7/RHEL $ sudo dnf install python3-pip # لـ Fedora/CentOS8 $ sudo pacman -S python3-pip # لتوزيعات Arch

تحتاج إلى استخدام اسم الحزمة “python-pip” لتثبيت PIP على Python2.
الخطوة 2: تثبيت حزمة “mysqlclient”
ترتبط وحدة “MySQLdb” بحزمتين يجب تثبيتهما قبل استيراد حزم PIP المختلفة. الحزمة الأولى هي “mysqlclient” التي تمكّن Python من الاتصال بـ MySQL.
يُعد غياب هذه الحزمة السبب الرئيسي لعدم قدرتك على استيراد الوحدة. يمكن تثبيت حزمة “mysqlclient” على Linux كالتالي:
$ pip3 install mysqlclient

قد تتلقى خطأ أثناء تثبيت “mysqlclient”. هذا لأنك لا تملك
حزمة التطوير الخاصة بـ Python لتضمين حزمة “mysqlclient” في نظامك. يمكن تثبيت هذه المجموعة من الحزم باستخدام الأمر:
$ sudo apt install python3-dev default-libmysqlclient-dev build-essential $ sudo yum install python3-dev default-libmysqlclient-dev build-essential $ sudo dnf install python3-dev default-libmysqlclient-dev build-essential
ملاحظة: تشير “apt” و “yum” و “dnf” إلى التوزيعات المستندة إلى Debian/Ubuntu و CentOS/RHEL و Fedora على التوالي.

بعد تثبيت “mysqlclient”، حاول استيراد الوحدة. إذا استمر الخطأ، فتابع إلى الخطوة التالية.
الخطوة 3: تثبيت “mysql-connector-python”
تسمح هذه الحزمة لـ Python بالاتصال بقواعد بيانات MySQL. يمكن استخدام الأمر التالي المستند إلى PIP لتثبيتها:
$ sudo pip3 install mysql-connector-python

إذا كنت تستخدم PIP لـ Python2، فاستبدل اسم مدير الحزم “pip3” بـ “pip2”
الخطوة 4: التحقق من الحل
الآن، استورد الوحدة باستخدام اسمها الكامل:
>>> import MySQLdb

تُظهر لقطة الشاشة أن الوحدة قد تم استيرادها إلى بيئة Python.
يحدث الخطأ “no module named mysqldb” عندما يحاول المستخدم استيراد الوحدة في غياب الحزم المطلوبة لاستيرادها. يمكن إصلاح الخطأ عن طريق تثبيت حزمة “mysqlclient” على النظام. ومع ذلك، إذا لم يتم إصلاحه بعد، فقم بتثبيت حزمة “mysql-connector-python” باستخدام PIP. لقد أدرج هذا المنشور السبب والحلول لإصلاح خطأ وحدة “MySQLdb” على Linux.
Comments are closed.