ไม่มีโมดูลชื่อ MySQLdb


400

ฉันใช้ Python เวอร์ชั่น 2.5.4 และติดตั้ง MySQL เวอร์ชั่น 5.0 และ Django Django ทำงานได้ดีกับ Python แต่ไม่ใช่ MySQL ฉันกำลังใช้งานอยู่ใน Windows Vista


43
pip install mysql-pythonหรือpip install mysqlclient
Cœur

13
ฉันต้องติดตั้งsudo apt-get install libmysqlclient-devเพื่อให้มันใช้งานได้
b00r00x0

pip install mysqlclient ใช้งานได้บน windows x64 10, You rock C --ur
Itachi Sama

8
สำหรับ Python3.6 sudo apt-get install libmysqlclient-devและpip3 install mysqlclientทำงานให้ฉัน
Umair

คำตอบ:


638

คุณต้องใช้หนึ่งในคำสั่งต่อไปนี้ อันไหนขึ้นอยู่กับระบบปฏิบัติการและซอฟต์แวร์ที่คุณมีและใช้งาน

  1. easy_install mysql-python (มิกซ์โอเอส )
  2. pip ติดตั้ง mysql-python (mix os / python 2)
  3. pip ติดตั้ง mysqlclient (mix os / python 3)
  4. apt-get install python-mysqldb (Linux Ubuntu, ... )
  5. cd / usr / ports / ฐานข้อมูล / py-MySQLdb && ทำการติดตั้งใหม่ทั้งหมด (FreeBSD)
  6. ยำติดตั้ง MySQL-python (Linux Fedora, CentOS ... )

สำหรับ Windows ดูคำตอบนี้: ติดตั้ง mysql-python (Windows)


1
ฉันต้องอัปเดต setuptools เวอร์ชันของฉันเพื่อให้ตรงกับ python เวอร์ชันที่อัปเดตของฉันใน Mac OS ก่อนที่ฉันจะสามารถใช้งานได้
Jonathan Adelson

4
และวิธีการเกี่ยวกับการติดตั้งบน virtualenv ด้วย python 3 บนมัน? ฉันใช้: pip install mysql-python เท่านั้นที่จะได้รับ: ImportError: ไม่มีโมดูลชื่อ ConfigParser
Iliyan Bobev

9
ใน Python 3, ConfigParser ถูกเปลี่ยนชื่อเป็น configparser สำหรับการปฏิบัติตาม PEP 8 ดูเหมือนว่าแพ็คเกจที่คุณติดตั้งไม่รองรับ Python 3 MySQL-python ไม่รองรับ Python 3 ในขณะนี้
derevo

2
ฉันได้รับข้อผิดพลาดนี้เมื่อใช้ 1 หรือ 2 ในOSX Yosemite:EnvironmentError: mysql_config not found
Mona Jalal

1
FYI - ฉันใช้ Ubuntu 18 และใช้ python3.7 หลังจากทำ "pip install mysqlclient" ฉันต้องทำ "sudo apt-get install libmysqlclient-dev" เพื่อการติดตั้งที่สำเร็จ
Rashmi Singh เมื่อ

143

... และจำไว้ว่าไม่มี MySQLdb สำหรับ python3.x

(ฉันรู้ว่าคำถามเกี่ยวกับ python2.x แต่ Google ให้คะแนนโพสต์นี้ค่อนข้างสูง)


แก้ไข:ตามที่ระบุไว้ในความคิดเห็นมีทางแยกของ MySQLdb ที่เพิ่มการสนับสนุน Python 3: github.com/PyMySQL/mysqlclient-python


Urghhgwaarrbl ... ฉันมีความหวังในการใช้ python3 ในแอพ Django ของฉัน
Don Cheadle

6
โชคดีที่มีตัวเลือกหลายตัวเลือกซึ่งส่วนใหญ่ใช้ API เดียวกัน: Python 3 และ MySQL
Anthony Geoghegan

4
mysqlclientเป็นทางแยกของ MySQLdb ที่ทำงานได้ดีกับงูหลาม 3.
ostrokach

@ JanekOlszak ฉันไม่ทราบสิ่งนี้ - ใช้เวลาเพียงหนึ่งวันในการสาปแช่งและการต่อสู้บนแป้นพิมพ์ - จนกว่าจะอ่านข้อความนี้และสลับไปที่ 2.7 และคาดเดาว่าทุกอย่างทำงานได้ดี hunky-dory ~
3kstc

การเดินทางของฉันนี้ -> นี้ -> นี้ จากนั้นในที่สุดฉันก็สามารถติดตั้งได้สำเร็จ
daka

68

ถ้า python ของคุณเป็นรุ่น3.5ให้ทำอย่างpip install mysqlclientอื่นไม่ได้ผลสำหรับฉัน


ฉันไม่รู้ว่าทำไมคำตอบนี้จึงถูกโหวต แต่mysqlclientเป็นส่วนหนึ่งของโครงการ MySQLdb และฉันสามารถยืนยันสิ่งนี้ได้ผลสำหรับฉันใน Windows 10
Hamman Samuel

1
ทำงานให้ฉันใน linux arch
ลุค Dupin

ทำงานบน Ubuntu 16.10, Python 3.5.2+
tivadj

ทำงานบน Ubuntu 14.04 Python 3.4.3
gpk27

ทำงานบน macOS, Python 3.6.0
Miguel Mota

48

mysqldbเป็นโมดูลสำหรับ Python ที่ไม่ได้ติดตั้งมาล่วงหน้าหรือใช้กับ Django คุณสามารถดาวน์โหลดที่นี่mysqldb


1
กำลังพยายามติดตั้ง MySQL-python-1.2.1 ฉันได้รับข้อความImportError: ไม่มีโมดูลชื่อ setuptools กำลังพยายามติดตั้ง setuptools ฉันได้รับzlib ไม่พร้อมใช้งาน ไม่ควรรวมกับงูหลามใช่หรือไม่
Pierre de LESPINAY

หลังจากดาวน์โหลดโมดูลคุณจะต้องแก้ไขไฟล์ site.cfg ด้วยพา ธ ที่ถูกต้องสำหรับ mysql_config และ runpython setup.py install
ntanase


25

หมายเหตุนี่ไม่ได้ทำการทดสอบสำหรับ python 3.x

ใน CMD

pip install wheel
pip install pymysql

ใน settings.py

import pymysql
pymysql.install_as_MySQLdb()

มันทำงานกับฉัน


3
"pip3 ติดตั้ง mysqlclient" แก้ปัญหาสำหรับ
python3.6

ฉันไม่สามารถลงคะแนนมากพอ! ทางออกเดียวที่ใช้ได้กับ Databricks ..
Foxan Ng

13
pip install PyMySQL

จากนั้นเพิ่มสองบรรทัดนี้ในโครงการ / โครงการ / init .py ของคุณ

import pymysql
pymysql.install_as_MySQLdb()

ใช้งานได้บน WIN และ python 3.3+


ฉันใช้คำแนะนำของคุณสำเร็จแล้ว การเปลี่ยนแปลงเท่านั้นที่อยู่ในคำสั่งการนำเข้า: import pymysql มีประเภท
Jorge

ทำงานสำหรับฉันใน windows10, python 3.6, สภาพแวดล้อมเสมือนจริง
Yikang Luo

1
รักแฮ็คนี้ แม้ว่าฉันจะพยายามทำให้มันใช้งานได้โดยที่มันยังไม่ได้รวม whql binary ไว้
Ishmael

ควรเป็นคำตอบที่ถูกต้อง
Jossie Calderon

12

ลองสิ่งนี้

pip install MySQL-python

2
สิ่งนี้นำไปใช้กับสภาพแวดล้อมเสมือนโดยเฉพาะอย่างไร
ทิม

9

สำหรับหน้าต่าง:

pip install mysqlclient pymysql

แล้ว:

นำเข้า pymysql pymysql.install_as_MySQLdb ()

สำหรับ python 3 Ubuntu

sudo apt-get install -y python3-mysqldb

ทำงานเพียง "pip install mysqlclient pymysql" บน Windows 10 (Python 3.6.2) แก้ปัญหาของฉันได้
Rick Sarvas

8

หาก pip install mysqlclient สร้างข้อผิดพลาดและคุณใช้ Ubuntu ให้ลอง:

sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient

6

ฉันพบสถานการณ์เดียวกันภายใต้ windows และค้นหาวิธีแก้ปัญหา

เห็นโพสต์นี้ติดตั้ง MySQL หลาม (Windows)

มันชี้ให้เห็นว่าการติดตั้งสภาพแวดล้อม pip นั้นเป็นเรื่องยากต้องการการอ้างอิงอื่น ๆ อีกมากมาย

แต่ในที่สุดฉันก็รู้ว่าถ้าเราใช้mysqlclientกับรุ่นลงไป1.3.4มันไม่จำเป็นต้องมีข้อกำหนดอีกต่อไปดังนั้นลอง:

pip install mysqlclient==1.3.4

4
  • cdไปที่ไดเรกทอรีโครงการของคุณด้วย
  • แหล่งที่มา / bin / เปิดใช้งาน (เปิดใช้งาน env ของคุณหากไม่ได้ก่อนหน้านี้)
  • เรียกใช้คำสั่ง easy_install MySQL-python

1
ใช้งานไม่ได้ModuleNotFoundError: No module named 'ConfigParser'
TomSawyer

4
pip install --user mysqlclient 

งานด้านบนสำหรับฉันชอบเสน่ห์สำหรับฉันฉันไปผิดพลาดจาก sqlalchemy จริง ข้อมูลสภาพแวดล้อม:

Python: 3.6, Ubuntu: 16.04, เงื่อนไข 4.6.8


3

ขอบคุณ Derevo แต่ฉันคิดว่ามีวิธีที่ดีอีกวิธีหนึ่งในการทำสิ่งนี้:

  1. ดาวน์โหลดและติดตั้งActivePython
  2. เปิดพร้อมท์คำสั่ง
  3. ชนิด pypm install mysql-python
  4. อ่านหมายเหตุเฉพาะของแพ็คเกจนี้

ผมคิดว่าจะมีประสิทธิภาพมากขึ้นและน่าเชื่อถือมากกว่าpypmeasy_install


ดูเหมือนว่าจะต้องสมัครสมาชิกแบบชำระเงินCan't install mysql-python-1.2.3: requires Business Edition subscription
Jeremy S.

ฉันไม่คิดอย่างนั้น ฉันจำได้ว่าฉันติดตั้งแล้วโดยไม่มีปัญหา
Afshin Mehrabani

ทำไมคุณถึงคิดว่า pypm มีพลังและความน่าเชื่อถือมากกว่า easy_install? มีจุดใดบ้างที่ให้การสนับสนุน บทความใด ๆ / blogposts?
Sandeep Raju Prabhakar

2
ฉันคิดว่านี่จะเป็นบทความ / บล็อกโพสต์เพื่อสนับสนุนว่า: PI หมายถึงคุณสนับสนุนความคิดเห็นดังกล่าวโดยมีข้อโต้แย้งทางเทคนิคโดยทั่วไปไม่ใช่กับคนอื่นที่อ้างสิทธิ์เหมือนกัน แต่อาจไม่มีข้อโต้แย้ง อย่างไรก็ตามการโต้เถียงจะดี;)
Herbert

3

สำหรับPython 3+เวอร์ชัน

ติดตั้งmysql-connectorเป็น:

pip3 install mysql-connector 

ตัวอย่างรหัสการเชื่อมต่อ Python DB:

import mysql.connector
db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd=""
)
print(db_connection)

เอาท์พุท:

> <mysql.connector.connection.MySQLConnection object at > 0x000002338A4C6B00>

หมายความว่าฐานข้อมูลเชื่อมต่ออย่างถูกต้อง


3

ผมเองขอแนะนำให้ใช้pymysqlแทนการใช้การเชื่อมต่อ MySQL pipแท้ซึ่งให้คุณมีอินเตอร์เฟซที่แพลตฟอร์มอิสระและสามารถติดตั้งผ่าน

และคุณสามารถแก้ไขสกีมา URLAlchemy ของ SQL ดังนี้: mysql+pymysql://username:passwd@host/database



2

หากคุณใช้งานบน Vista คุณอาจต้องการตรวจสอบBitnami Django stack มันเป็นชุดรวมทั้งหมดของ Apache, Python, MySQL, และอื่น ๆ ที่บรรจุด้วยตัวติดตั้งข้ามแพลตฟอร์ม Bitrockเพื่อให้ง่ายต่อการเริ่มต้น มันทำงานบน Windows, Mac และ Linux โอ้และเป็นอิสระอย่างสมบูรณ์ :)


ถ้าอย่างนั้นทำไมคุณถึงพูดว่า "ถ้าคุณใช้งานบน Vista" ถ้ามันทำงานได้มากกว่า Vista นั่นทำให้เข้าใจผิดและสับสน
แอนโธนี

3
ถึงแอนโทนี่: ฉันเพิ่งพบว่าตลกที่ความเห็นที่ได้รับคะแนนสูงสุดมีคำแนะนำสำหรับ Linux, FreeBSD และ OSX แต่ไม่ใช่สำหรับ Vista ตามที่ผู้โพสต์ระบุไว้
Daniel Lopez

2

ฉันได้ลองวิธีการข้างต้นแล้ว แต่ก็ยังไม่มีโมดูลชื่อ 'MySQLdb' ในที่สุดฉันก็ประสบความสำเร็จ

easy_install mysql-python

env ของฉันคือ Ubuntu 14.04


ความสำเร็จสำหรับ virtualenv / python2.7
2560


1

หากคุณกำลังใช้ SQLAlchemy และข้อผิดพลาดอยู่ใน/site-packages/sqlalchemy/dialects/mysql/mysqldb.py:

from ...connectors.mysqldb import (
                        MySQLDBExecutionContext,
                        MySQLDBCompiler,
                        MySQLDBIdentifierPreparer,
                        MySQLDBConnector
                    )

ดังนั้นคุณอาจพลาดตัวเชื่อมต่อ mysqldb SQLAlchemyและวิธีแก้ปัญหาคือการติดตั้ง sqlalchemy อีกครั้งหลังจากติดตั้งmysql-pythonโมดูล


0

Win10 / Python27 สิ่งนี้ใช้ได้สำหรับฉัน:

easy_install mysql-python

การติดตั้ง pip อื่น ... ทั้งหมดล้มเหลวพร้อมข้อผิดพลาดในการพึ่งพา


0

สิ่งที่กล่าวมาข้างต้นไม่ได้ผลสำหรับฉันในการติดตั้ง Ubuntu 18.04 ใหม่ผ่านทางภาพนักเทียบท่า

ต่อไปนี้แก้ไขได้สำหรับฉัน:

apt-get install holland python3-mysqldb


0

สำหรับเครื่อง Mac ที่ใช้งาน Catalina v10.15.2 ฉันมีข้อขัดแย้งของรุ่น MySQLdb ต่อไปนี้:

ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)

เพื่อแก้ไขมันฉันทำต่อไปนี้:

pip uninstall MySQL-python
pip install MySQL-python

0

บน Debian Buster โซลูชันต่อไปนี้ใช้ได้กับ python 3.7:

sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient

0

ฉันอยู่ที่ Ubuntu (linux) และสิ่งที่ได้ผลสำหรับฉันคือ

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

แล้วในที่สุด

pip install mysqlclient
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.