MySQL เป็นหนึ่งในตัวเลือกที่มีประสิทธิภาพสำหรับใช้กับ Python โมดูล Python “mysqldb” ช่วยให้เชื่อมต่อ Python กับ MySQL ได้ หากโมดูลไม่ได้ติดตั้ง จะเกิด error “no module named ‘mysqldb’”
ModuleNotFoundError: No module named MySQLdb Fix
บทความนี้จะแนะนำสาเหตุและวิธีแก้ error “no module named mysqldb”
ทำไมถึงเกิด error นี้?
โมดูล Python ขึ้นอยู่กับ single package หรือ multiple packages หาก package ที่เกี่ยวข้องกับ “mysqldb” หนึ่งตัวไม่ได้ติดตั้ง และคุณพยายาม import โมดูล จะเกิด error “no module named mysqldb”
ภาพหน้าจอแสดงว่าพยายาม import แต่ error เกิดขึ้น:
ModelNotFoundError
วิธีแก้: ติดตั้ง “MySQLdb”
โมดูล “MySQLdb” พร้อมใช้งานผ่าน PIP (Python package manager) ตรวจสอบว่า PIP ติดตั้งแล้ว วิธีแก้ครบถ้วนดังนี้:
ขั้นตอน 1: ติดตั้ง PIP
PIP ติดตั้งบน Linux ได้ด้วยคำสั่ง:
$ sudo apt install python3-pip #For Debian and Ubuntu-Based Distributions $ sudo yum install python3-pip #For CentOS7/RHEL $ sudo dnf install python3-pip #For Fedora/CentOS8 $ sudo pacman -S python3-pip #For Arch-Based Distributions
Installing python3-pip
สำหรับ Python2 ใช้ package name “python-pip” แทน
ขั้นตอน 2: ติดตั้งแพ็กเกจ “mysqlclient”
โมดูล “MySQLdb” เกี่ยวข้องกับ 2 packages ที่ต้องติดตั้งก่อน import packages อื่นๆ ของ PIP ตัวแรกคือ “mysqlclient” ซึ่งทำให้ Python เชื่อมต่อ MySQL ได้
ขาด package นี้คือสาเหตุหลักที่ import โมดูลไม่ได้ ติดตั้ง “mysqlclient” บน Linux:
$ pip3 install mysqlclient
Install MySQL package
อาจเจอ error ขณะติดตั้ง “mysqlclient” เพราะขาด development package ของ Python สำหรับ embed package “mysqlclient” ติดตั้งชุด packages นี้ด้วย:
$ 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
Note: “apt”, “yum”, “dnf” หมายถึง Debian/Ubuntu, CentOS/RHEL, Fedora based distributions ตามลำดับ
MySQL build essentials installation
ติดตั้ง “mysqlclient” แล้ว ลอง import โมดูล ถ้ายัง error ให้ทำต่อ
ขั้นตอน 3: ติดตั้ง “mysql-connector-python”
Package นี้ทำให้ Python เชื่อมต่อ MySQL Databases ได้ ติดตั้งด้วย PIP:
$ sudo pip3 install mysql-connector-python
connecting python to MySQL DB
ถ้าใช้ PIP สำหรับ Python2 ให้เปลี่ยน “pip3” เป็น “pip2”
ขั้นตอน 4: ตรวจสอบว่าซ่อมแซมได้แล้ว
ตอนนี้ import โมดูลด้วยชื่อเต็ม:
>>> import MySQLdb
Import MySQLdb
Screenshot แสดงว่าโมดูล import เข้าสู่ Python environment แล้ว
Error “no module named mysqldb” เกิดเมื่อพยายาม import ในขณะที่ขาด packages ที่จำเป็น แก้ได้โดยติดตั้ง package “mysqlclient” ถ้ายังไม่หาย ให้ติดตั้ง “mysql-connector-python” ด้วย PIP บทความนี้ระบุสาเหตุและวิธีแก้ error “MySQLdb” module บน Linux ครบถ้วน
ABOUT THE AUTHOR

Muhammad Zubyan
Muhammad Zubyan ได้รับการรับรอง Google IT Support Professional มีประสบการณ์มากกว่า 7 ปี ทำงานกับคอมพิวเตอร์มากกว่า 1500 เครื่อง มีความเข้าใจลึกซึ้งในการตรวจจับและ troubleshoot root cause ของปัญหาและ error ที่เกี่ยวกับ Windows นอกจากการดูแล Appuals เป็น Senior Editor ยังกำลังพัฒนา Game Optimization program ของตัวเอง ที่รองรับทั้งเกมเมอร์และผู้ใช้ทั่วไป