ImportError: MySQLdb नाम का कोई मॉड्यूल नहीं


124

मैं अपने वेब एप्लिकेशन के लिए एक लॉगिन पृष्ठ बनाने के लिए निम्नलिखित ट्यूटोरियल का उल्लेख कर रहा हूं। http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982

मैं डेटाबेस के साथ समस्या कर रहा हूँ। मुझे ए

ImportError: No module named MySQLdb

जब मैं निष्पादित करता हूं

http://127.0.0.1:5000/testdb

मैंने अजगर mysql को स्थापित करने के सभी संभव तरीकों की कोशिश की है, जो कि ट्यूटोरियल में बताया गया है, easy_install, sudo apt-get install।

मैंने अपने वर्चुअल एनवी में mysql इंस्टॉल किया है। मेरी निर्देशिका संरचना सिर्फ उसी तरह है जैसे कि ट्यूटोरियल में बताया गया है। मॉड्यूल मेरे सिस्टम में सफलतापूर्वक स्थापित है और फिर भी मुझे यह त्रुटि मिल रही है।

कृपया मदद कीजिए। ऐसा किसके कारण हो सकता है।


आप MySQL स्थापित किया है, लेकिन आप स्थापित किया है MySQLdb पायथन के लिए पैकेज?
Ffisegydd

मैंने sudo apt-get install mysql-python का उपयोग किया। जब मैंने पाइप का उपयोग किया तो मुझे mysql_config के लिए पर्यावरण त्रुटि मिली
user3182194

mysql मेरे वर्चुअल एनवायरमेंट के भीतर स्थापित है और ठीक से काम कर रहा है और mysqldb भी इंस्टॉल किया गया है।
user3182194

जवाबों:


277

यदि आपके पास बाइनरी एक्सटेंशन को संकलित करने के मुद्दे हैं, या एक प्लेटफ़ॉर्म पर जहां आप कैंट नहीं कर सकते हैं, तो आप शुद्ध पायथन PyMySQLबाइंडिंग का उपयोग करके देख सकते हैं ।

pip install pymysqlइस तरह से शुरू करने के लिए बस अपने SQLAlchemy URI को स्विच करें:

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

कुछ अन्य ड्राइवर हैं जिन्हें आप भी आज़मा सकते हैं।


क्या मैं कुछ भुल गया? यह यहाँ सूचीबद्ध क्यों नहीं है? विशेष रूप से वह बोली नाम: docs.sqlalchemy.org/en/latest/core/engines.html । यह वही था जो मैंने गलत किया था, धन्यवाद।
CashIsClay

ध्यान दें डीबी यूरी कुछ हद तक आपके द्वारा उपयोग किए जाने वाले कनेक्टर पर निर्भर है :)
ब्रैडेन होल्ट

यह मेरे लिए python2.7। * के साथ काम नहीं किया। pip install MySQL-pythonकाम का उपयोग ।
राहुल गोयल

1
फ्लास्क- sqlalchemy त्रुटियों के समाधान के बाद खोज करते समय इसने बहुत मदद की। मैं का सामना करना पड़ा: 1. त्रुटि चल WSGI आवेदन ModuleNotFoundError: नहीं मॉड्यूल 'MySQLdb' 2. (_mysql_exceptions.OperationalError) का नाम (2006, 'SSL कनेक्शन त्रुटि: SSL_CTX_set_tmp_dh विफल') (पर इस त्रुटि पर पृष्ठभूमि: sqlalche.me/e/e3q8 ) बहुत बहुत धन्यवाद और मुझे आशा है, कि अन्य लोग इस त्रुटि विवरण के साथ इस समाधान को तेज़ी से पा लेंगे जैसे मैंने किया है!
बेन

CentOS पर काम किया, सबसे गैर-ओएस-निर्भर उत्तर लगता है। धन्यवाद!
trpt4him

94

या यह प्रयास करें:

apt-get install python-mysqldb

9
मुझे लगता है कि प्रश्न का उत्तर यह है
कोडरफॉथडार्क

1
python-mysqldb की वीसी ++ लाइब्रेरी जैसी कुछ निर्भरताएं हैं और कभी-कभी 64 बिट ओएस पर काम नहीं करता है
निमा सोरोश

1
इसने मेरे लिए भी काम किया। Ubuntu 16.04 के साथ अजगर 2.7
genepool99

उन लोगों के लिए जो इस उत्तर को अपने मुद्दे को हल नहीं करते थे यह एक वर्चुअनव्यू मुद्दे के कारण हो सकता है देखें: stackoverflow.com/a/43984484
चेन लेवी

अधिक सटीक:sudo apt-get install python-mysqldb
टीना जे

24

आप कोशिश कर सकते हैं

pip install mysqlclient

2
मेरे लिए काम करता है python पर 3.7.3
nsssayom

1
साझा करने के लिए धन्यवाद, यह तब काम किया जब मैं विंडोज का उपयोग कर रहा था, लेकिन मेरे पास कुछ मुद्दे थे mysqlclient( OSError: mysql_config not found) जब मैं उबंटू पर एक ही ऐप चलाने की कोशिश कर रहा था, तो स्वीकृत उत्तर ने इसे हल कर दिया।
बिलाल

एनाकोंडा और अजगर के साथ OSX पर काम करता है 3.7.6
सारू लिंडस्टॉक

16

मेरा मुद्दा है:

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

और मेरा संकल्प:

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

बहुत शुरुआत में, मैंने सिर्फ MySQL-python स्थापित किया, लेकिन यह समस्या अभी भी मौजूद है। इसलिए मुझे लगता है कि अगर यह मुद्दा हुआ, तो आपको mysql-devel को भी ध्यान में रखना चाहिए। उम्मीद है की यह मदद करेगा।


2
pip install MySQL-pythonहाँ, यह टिकट है
किर्बी

यह विंडोज के वातावरण में Microsoft Visual C ++ पुस्तकालयों पर निर्भर करता है
Erizo

15

मुझे यह मुद्दा तब मिला जब मैं SQLAlchemy पर काम कर रहा था। MySQL के लिए SQLAlchemy द्वारा प्रयुक्त डिफ़ॉल्ट बोली है mysql+mysqldb

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

No module named MySQLdbउपरोक्त कमांड निष्पादित होने पर मुझे " " त्रुटि मिली । इसे ठीक करने के लिए मैंने mysql-pythonमॉड्यूल स्थापित किया और समस्या ठीक हो गई।

sudo pip install mysql-python

3
mysql-python को स्थापित करने से पहले, आपको अभी भी mysql या कुछ को msyql_config कमांड से इंस्टॉल करना होगा।
mxi1

8

यह मेरे अनुभव के साथ-साथ पायथन संस्करण पर भी निर्भर करता है।

यदि आप पायथन 3 का उपयोग कर रहे हैं, तो @DazWorrall जवाब ने मेरे लिए ठीक काम किया।

हालांकि, यदि आप पायथन 2 का उपयोग कर रहे हैं, तो आपको करना चाहिए

sudo pip install mysql-python

जो SQLAlchemy URI को बदलने के लिए बिना 'MySQLdb' मॉड्यूल स्थापित करेगा।


2
अगर किसी को यहाँ नीचे है, और पर्यावरण त्रुटि हो रही है: mysql_config नहीं पाया थोड़े बात है, तो sudo apt-get install libmysqlclient-dev आपकी मदद कर सकता है। मूल उत्तर: stackoverflow.com/a/5178698/2190689
ssi-aik

यदि आपको कॉन्फ़िगर पार्सर प्रकार की त्रुटि मिलती है, तो आप इसे देख सकते हैं। stackoverflow.com/a/23978968/2190689
ssi-aik

7

इसलिए मैंने लगभग 5 घंटे बिताए, यह जानने की कोशिश की कि इस मुद्दे से कैसे निपटा जाए

./manage.py makemigrations

उबंटू सर्वर एलटीएस 16.1 के साथ, एक पूर्ण लैंप स्टैक, अपाचे 2 माईस्क्ल 5.7 PHP 7 पायथन 3 और Django 1.10.2 मैं वास्तव में इस का एक अच्छा जवाब खोजने के लिए संघर्ष किया। वास्तव में, मैं अभी भी संतुष्ट नहीं हूं, लेकिन मेरे लिए काम करने वाला एकमात्र समाधान यही है ...

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

इसके बाद (आभासी वातावरण के अंदर से)

pip install mysqlclient

जब मैं एक नया वेब सर्वर स्थापित करने का प्रयास कर रहा हूं तो मुझे वास्तव में देव संस्थापनों का उपयोग करना पसंद नहीं है, लेकिन दुर्भाग्य से यह विन्यास केवल सबसे आरामदायक पथ था जिसे मैं ले सकता था।


यदि आपके पास '-dev' पैकेज और कंपाइलर नहीं है, तो आप किसी भी पायथन मॉड्यूल को स्थापित नहीं कर सकते हैं जिसमें C एक्सटेंशन घटक है जिसे संकलित करने की आवश्यकता है। आपका एकमात्र विकल्प एक अलग बिल्ड बॉक्स का उपयोग करना होगा जिसमें अतिरिक्त बिट्स हैं और पायथन व्हील फ़ाइलों का निर्माण करते हैं। फिर पहियों को अपने लक्ष्य प्रणाली में कॉपी करें और इसके बजाय पहियों से पैकेज स्थापित करें।
ग्राहम डम्पलटन

3

हालांकि @Edward van Kuik का जवाब सही है, लेकिन यह virtualenv v1.7 और इसके बाद के संस्करण के मुद्दे को ध्यान में नहीं रखता है

विशेष रूप python-mysqldbसे aptउबंटू पर के माध्यम से स्थापित करने के तहत इसे रखा /usr/lib/pythonX.Y/dist-packages, लेकिन यह पथ virtualenv के डिफ़ॉल्ट रूप से शामिल नहीं है sys.path

तो इसे हल करने के लिए , आपको अपने virtualenv को सिस्टम पैकेज के साथ कुछ इस तरह से बनाना चाहिए:

virtualenv --system-site-packages .venv


0

अनुमतियों से संबंधित बहुत सारी त्रुटियां मिलीं और क्या नहीं। आप यह कोशिश कर सकते हैं:

xcode-select --install


0

Ubuntu 20 में, आप यह कोशिश कर सकते हैं:

sudo apt-get install libmysqlclient-dev
sudo apt-get install gcc
pip install mysqlclient
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.