ImportError: MySQLdb adlı modül yok


125

Web uygulamam için bir oturum açma sayfası oluşturmak için aşağıdaki eğiticiye başvuruyorum. http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982

Veritabanıyla ilgili sorun yaşıyorum. Alıyorum

ImportError: No module named MySQLdb

yürüttüğümde

http://127.0.0.1:5000/testdb

Öğreticide bahsedilen easy_install, sudo apt-get install python mysql'yi kurmanın tüm olası yollarını denedim.

Sanal ortamıma mysql kurdum. Dizin yapım, öğreticide açıklananlarla tamamen aynı. Modül sistemime başarıyla kuruldu ve hala bu hatayı alıyorum.

Lütfen yardım et. Buna ne sebep olabilir.


MySQL yüklediniz, ancak Python için MySQLdb paketini kurdunuz mu?
Ffisegydd

Sudo apt-get install mysql-python kullandım. Pip kullandığımda mysql_config
user3182194

mysql sanal ortamıma kuruldu ve düzgün çalışıyor ve mysqldb de kuruldu.
user3182194

Yanıtlar:


277

İkili uzantıyı derlerken sorun yaşıyorsanız veya yapamayacağınız bir platformda, saf python PyMySQLbağlamalarını kullanmayı deneyebilirsiniz .

Basitçe pip install pymysqlve şu şekilde başlamak için SQLAlchemy URI'nizi değiştirin:

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

Bazı vardır diğer sürücüler de deneyebilirsin.


Bir şey mi kaçırdım? Bu neden burada listelenmiyor? Özellikle bu lehçe adı: docs.sqlalchemy.org/en/latest/core/engines.html . Yine de yanlış yaptığım şey buydu, teşekkürler.
CashIsClay

Uri :) Kullandığınız konektör üzerine biraz bağlıdır db Not
Braden Holt

bu benim için python2.7. * ile çalışmadı. kullanımı pip install MySQL-pythonçalıştı.
Rahul Goyal

1
bu, flask-sqlalchemy hataları için bir çözüm ararken çok yardımcı oldu. Karşılaştım: 1. WSGI uygulaması ModuleNotFoundError çalıştırılırken hata oluştu: 'MySQLdb' adlı modül yok 2. (_mysql_exceptions.OperationalError) (2006, 'SSL bağlantı hatası: SSL_CTX_set_tmp_dh başarısız oldu') (Bu hatanın arka planı : sqlalche.me/e/e3q8 ) çok teşekkür ederim ve umarım, diğerleri bu çözümü bu hata açıklamalarıyla benim yaptığım gibi daha hızlı bulacaklardır!
ben

CentOS üzerinde çalıştı, işletim sistemine en bağımlı olmayan cevap gibi görünüyor. Teşekkürler!
trpt4him

94

Veya şunu deneyin:

apt-get install python-mysqldb

9
Sanırım sorunun cevabı bu
codersofthedark

1
python-mysqldb'nin VC ++ kitaplığı gibi bazı bağımlılıkları vardır ve bazen 64 bit işletim sisteminde çalışmaz
Nima Soroush

1
Bu benim için de çalıştı. Python 2.7 ile Ubuntu 16.04
genepool99

Bu cevabın sorununu çözemediği kişiler için bu, bir virtualenv sorunundan kaynaklanıyor olabilir bkz: stackoverflow.com/a/43984484
Chen Levy

Daha doğru bir şekilde:sudo apt-get install python-mysqldb
Tina J

25

deneyebilir misin

pip install mysqlclient

2
Benim için çalışıyor python 3.7.3
nsssayom

1
Paylaştığınız için teşekkürler, Windows kullanırken işe yaradı ama aynı uygulamayı Ubuntu'da çalıştırmaya çalışırken mysqlclient( OSError: mysql_config not found) ile ilgili bazı sorunlar yaşadım, kabul edilen cevap çözdü.
Bilal


17

Benim sorunum:

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

ve benim çözümüm:

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

En başta, MySQL-python'u yeni kurdum, ancak sorun hala devam ediyordu. Yani bence bu sorun olursa, mysql-devel'i de dikkate almalısınız. Bu yardımcı olur umarım.


3
pip install MySQL-pythonevet, bu bilet
Kirby

Bu, Windows ortamlarındaki Microsoft Visual C ++ kitaplıklarına bağlıdır
Erizo

15

SQLAlchemy üzerinde çalışırken bu sorunu yaşadım. MySQL için SQLAlchemy tarafından kullanılan varsayılan lehçe mysql+mysqldb.

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

No module named MySQLdbYukarıdaki komut yürütüldüğünde " " hatasını aldım . Düzeltmek için mysql-pythonmodülü kurdum ve sorun giderildi.

sudo pip install mysql-python

3
mysql-python'u kurmadan önce, mysql veya msyql_config komutunu içeren bir şey yüklemeniz gerekir.
mxi1

8

Benim deneyimlerime göre Python Sürümüne de bağlı.

Python 3 kullanıyorsanız, @DazWorrall cevabı benim için iyi çalıştı.

Ancak, Python 2 kullanıyorsanız,

sudo pip install mysql-python

SQLAlchemy URI'sini değiştirmek zorunda kalmadan 'MySQLdb' modülünü yükler.


2
Burada biri varsa ve ortam hatası alıyorsa: mysql_config pek bir şey bulunamadı, o zaman sudo apt-get install libmysqlclient-dev size yardımcı olabilir. Orijinal cevap: stackoverflow.com/a/5178698/2190689
ssi-anik

Yapılandırma çözümleyici türünde bir hata alırsanız, buna bakabilirsiniz. stackoverflow.com/a/23978968/2190689
ssi-anik

7

Bu yüzden, koşmaya çalışırken bu sorunu nasıl çözeceğimi anlamaya çalışmak için yaklaşık 5 saat harcadım

./manage.py makemigrations

Ubuntu Sunucusu LTS 16.1, tam bir LAMP yığını, Apache2 MySql 5.7 PHP 7 Python 3 ve Django 1.10.2 ile buna iyi bir yanıt bulmakta gerçekten zorlandım. Aslında, hala memnun değilim, ancak benim için işe yarayan TEK çözüm bu ...

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

ardından (sanal ortamın içinden)

pip install mysqlclient

Yeni bir web sunucusu kurmaya çalışırken dev kurulumlarını kullanmak zorunda kalmaktan gerçekten hoşlanmıyorum, ancak maalesef bu konfigürasyon alabildiğim en rahat yoldu.


Eğer '-dev' paketleriniz ve bir derleyiciniz yoksa, derlenmesi gereken bir C uzantısı bileşenine sahip herhangi bir Python modülünü kuramazsınız. Tek seçeneğiniz, fazladan bitlere sahip ayrı bir yapı kutusu kullanmak ve Python tekerlek dosyaları oluşturmaktır. Ardından tekerlekleri hedef sisteminize kopyalayın ve bunun yerine paketleri tekerleklerden yükleyin.
Graham Dumpleton

3

İken @Edward van Kuik 'ın cevabı doğrudur, bu hesaba bir almaz yukarıda Virtualenv v1.7 ve konuyu .

Özellikle Ubuntu python-mysqldbüzerinden yükleme aptbunu altına koydu /usr/lib/pythonX.Y/dist-packages, ancak bu yol varsayılan olarak virtualenv'lere dahil edilmez.sys.path .

Bu nedenle, bunu çözmek için , aşağıdaki gibi bir şey çalıştırarak virtualenv'inizi sistem paketleri ile oluşturmalısınız:

virtualenv --system-site-packages .venv


0

İzinlerle ve neyle ilgili olmayanlarla ilgili çok sayıda hata var. Bunu denemek isteyebilirsiniz:

xcode-select --install

0
yum install MySQL-python.x86_64

benim için çalıştı.


0

Ubuntu 20'de şunu deneyebilirsiniz:

sudo apt-get install libmysqlclient-dev
sudo apt-get install gcc
pip install mysqlclient
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.