ImportError: Tidak ada modul bernama MySQLdb


124

Saya mengacu pada tutorial berikut untuk membuat halaman login untuk aplikasi web saya. http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982

Saya mengalami masalah dengan database. Saya mendapatkan sebuah

ImportError: No module named MySQLdb

saat saya mengeksekusi

http://127.0.0.1:5000/testdb

Saya telah mencoba semua cara yang mungkin untuk menginstal python mysql, yang disebutkan dalam tutorial, easy_install, sudo apt-get install.

Saya telah menginstal mysql di virtual env saya. Struktur direktori saya sama dengan yang dijelaskan di tutorial. Modul berhasil dipasang di sistem saya dan saya masih mendapatkan kesalahan ini.

Tolong bantu. Apa yang bisa menyebabkan ini.


Anda telah menginstal MySQL tetapi apakah Anda telah menginstal paket MySQLdb untuk Python?
Ffisegydd

Saya menggunakan sudo apt-get install mysql-python. Ketika saya menggunakan pip saya mendapat kesalahan Lingkungan untuk mysql_config
user3182194

mysql terinstal dalam lingkungan virtual saya dan berfungsi dengan baik dan mysqldb juga telah diinstal.
pengguna3182194

Jawaban:


277

Jika Anda mengalami masalah dalam mengompilasi ekstensi biner, atau pada platform yang tidak dapat Anda gunakan, Anda dapat mencoba menggunakan PyMySQLbinding python murni .

Cukup pip install pymysqldan alihkan URI SQLAlchemy Anda untuk memulai seperti ini:

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://.....'

Ada beberapa driver lain yang juga bisa Anda coba.


Apakah saya melewatkan sesuatu? Mengapa ini tidak tercantum di sini? Khususnya nama dialek itu: docs.sqlalchemy.org/en/latest/core/engines.html . Ini tepatnya yang salah, terima kasih.
CashIsClay

Perhatikan bahwa db uri agak tergantung pada konektor yang Anda gunakan :)
Braden Holt

ini tidak bekerja dengan python2.7. * untuk saya. penggunaan pip install MySQL-pythonbekerja.
Rahul Goyal

1
yang satu ini sangat membantu saat mencari solusi untuk kesalahan flask-sqlalchemy. Saya menghadapi: 1. Kesalahan menjalankan aplikasi WSGI ModuleNotFoundError: Tidak ada modul bernama 'MySQLdb' 2. (_mysql_exceptions.OperationalError) (2006, 'Kesalahan koneksi SSL: SSL_CTX_set_tmp_dh gagal') (Latar belakang kesalahan ini di: sqlalche.me/e/e3q8 ) terima kasih banyak dan saya berharap, orang lain akan menemukan solusi ini dengan deskripsi kesalahan ini lebih cepat seperti yang telah saya lakukan!
ben

Bekerja pada CentOS, tampaknya menjadi jawaban yang paling tidak bergantung pada OS. Terima kasih!
trpt4him

94

Atau coba ini:

apt-get install python-mysqldb

9
Saya pikir jawaban untuk pertanyaannya adalah ini
codersofthedark

1
python-mysqldb memiliki beberapa dependensi seperti pustaka VC ++ dan terkadang tidak berfungsi pada OS 64 bit
Nima Soroush

1
Ini berhasil juga untuk saya. Ubuntu 16.04 dengan python 2.7
genepool99

Bagi orang-orang yang jawaban ini tidak menyelesaikan masalah mereka, ini mungkin karena masalah virtualenv lihat: stackoverflow.com/a/43984484
Chen Levy

Lebih tepatnya:sudo apt-get install python-mysqldb
Tina J

25

boleh coba

pip install mysqlclient

2
Bekerja untuk saya di python 3.7.3
nsssayom

1
Terima kasih telah berbagi, Ini berfungsi ketika saya menggunakan Windows tetapi saya memiliki beberapa masalah dengan mysqlclient( OSError: mysql_config not found) ketika saya mencoba menjalankan aplikasi yang sama di Ubuntu, jawaban yang diterima menyelesaikannya.
Bilal

Bekerja pada OSX dengan anaconda dan python 3.7.6
Saaru Lindestøkke

16

Masalah saya adalah:

return __import__('MySQLdb')
ImportError: No module named MySQLdb

dan resolusi saya:

pip install MySQL-python
yum install mysql-devel.x86_64

pada awalnya, saya baru saja menginstal MySQL-python, tetapi masalahnya masih ada. Jadi saya pikir jika masalah ini terjadi, Anda juga harus mempertimbangkan mysql-devel. Semoga ini membantu.


2
pip install MySQL-pythonya, itu tiketnya
Kirby

Ini tergantung pada pustaka Microsoft Visual C ++ di lingkungan Windows
Erizo

15

Saya mendapat masalah ini saat saya mengerjakan SQLAlchemy. Dialek default yang digunakan SQLAlchemy untuk MySQL adalah mysql+mysqldb.

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

Saya mendapatkan No module named MySQLdberror " " saat perintah di atas dijalankan. Untuk memperbaikinya saya menginstal mysql-pythonmodul dan masalah telah diperbaiki.

sudo pip install mysql-python

3
sebelum menginstal mysql-python, Anda masih perlu menginstal mysql atau sesuatu yang berisi perintah msyql_config.
mxi1

8

Itu tergantung pada Versi Python juga dalam pengalaman saya.

Jika Anda menggunakan Python 3, jawaban @DazWorrall berfungsi dengan baik untuk saya.

Namun, jika Anda menggunakan Python 2, Anda harus melakukannya

sudo pip install mysql-python

yang akan menginstal modul 'MySQLdb' tanpa harus mengubah URI SQLAlchemy.


2
Jika ada orang di sini, dan mendapatkan kesalahan lingkungan: mysql_config tidak ditemukan, sudo apt-get install libmysqlclient-dev dapat membantu Anda. Jawaban asli: stackoverflow.com/a/5178698/2190689
ssi-anik

Jika Anda mendapatkan jenis kesalahan config parser, Anda dapat melihat ini. stackoverflow.com/a/23978968/2190689
ssi-anik

7

Jadi saya menghabiskan sekitar 5 jam mencoba mencari cara untuk mengatasi masalah ini ketika mencoba menjalankannya

./manage.py makemigrations

Dengan Ubuntu Server LTS 16.1, tumpukan LAMP penuh, Apache2 MySql 5.7 PHP 7 Python 3 dan Django 1.10.2 Saya benar-benar kesulitan menemukan jawaban yang bagus untuk ini. Sebenarnya, saya masih belum puas, tetapi SATU-SATUNYA solusi yang berhasil untuk saya adalah ini ...

sudo apt-get install build-essential python-dev libapache2-mod-wsgi-py3 libmysqlclient-dev

diikuti oleh (dari dalam lingkungan virtual)

pip install mysqlclient

Saya benar-benar tidak suka harus menggunakan penginstalan dev ketika saya mencoba menyiapkan server web baru, tetapi sayangnya konfigurasi ini adalah satu-satunya jalur yang paling nyaman yang dapat saya ambil.


Jika Anda tidak memiliki paket '-dev' dan kompilator, Anda tidak dapat menginstal modul Python apa pun yang memiliki komponen ekstensi C yang perlu dikompilasi. Satu-satunya pilihan Anda adalah menggunakan kotak build terpisah yang memiliki bit ekstra dan membuat file roda Python. Kemudian salin roda ke sistem target Anda dan instal paket dari roda sebagai gantinya.
Graham Dumpleton


0

Mendapat begitu banyak kesalahan terkait perizinan dan apa yang tidak. Anda mungkin ingin mencoba ini:

xcode-select --install

0
yum install MySQL-python.x86_64

bekerja untuk saya.


0

Di ubuntu 20, Anda dapat mencoba ini:

sudo apt-get install libmysqlclient-dev
sudo apt-get install gcc
pip install mysqlclient
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.