django.core.exception.ImproperlyConfigured: MySQLdb मॉड्यूल को लोड करने में त्रुटि: कोई भी SQL मॉड्यूल का नाम मॉड्यूल नहीं है


93

Mysql के लिए डेटाबेस से कनेक्ट करने का प्रयास करते समय समस्या का सामना करना पड़ रहा है। मैंने डेटाबेस सेटिंग्स भी दी हैं जिनका मैंने उपयोग किया है।

 Traceback (most recent call last):
 File "manage.py", line 10, in <module>
 execute_from_command_line(sys.argv)
 File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
utility.execute()
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 77, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/home/arundhati/Desktop/test/testprac/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module>
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/sql.py", line 9, in <module>
from django.db import models
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/utils.py", line 27, in load_backend
return import_module('.base', backend_name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

डेटाबेस सेटिंग ::

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'ar_test_db',                      # Or path to database file if using 
        # The following settings are not used with sqlite3:
        'USER': '',
        'PASSWORD': '',
        'HOST': '',                      # Empty for localhost through domain sockets or   '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

सहायता के लिए बहुत - बहुत धन्यवाद !!

जवाबों:


136

ऐसा लगता है कि आपके पास अजगर mysql पैकेज स्थापित नहीं है, कोशिश करें:

pip install mysql-python

या यदि वर्चुअल वातावरण (* निक्स होस्ट) का उपयोग नहीं कर रहा है:

sudo pip install mysql-python

क्या आप वर्चुअल वातावरण का उपयोग कर रहे हैं? मैं आपको सलाह देता हूं कि आप सिर्फ चीजों को व्यवस्थित रखें। यदि यह विकल्प नहीं है, तो आपको सुपरसुसर विशेषाधिकारों के साथ पाइप चलाने की आवश्यकता होगी: sudo pip mysql-python
Ron E

2
मैं आभासी env उपयोग कर रहा हूँ, और मैं mysql स्थापित किया है, Django ... लेकिन जब मैं अजगर manage.py कर syncdb यह मुझे एक ही त्रुटि है कि मैं पोस्ट किया है देता है
getitstarted

क्या मुझे किसी भी तरह की समस्या है? मैं django 1.5, python 2.7.3 का उपयोग अपने sql (डेबियन के लिए 14.14) के साथ कर रहा हूं
हूं

4
अजगर 3 के साथ है: पाइप स्थापित करें mysqlclient
sadalsuud

1
यह python3 में काम नहीं करता है। configParser की आवश्यकता होती है जो python3 में उपलब्ध नहीं है
gogagubi

40

आपको MySQL में python-mysqldb - Python इंटरफ़ेस इंस्टॉल करना होगा

प्रयत्न
sudo apt-get install python-mysqldb


38

यदि आपको पाइप के साथ mysqlclient स्थापित करने की कोशिश करने में त्रुटियां मिलती हैं, तो आपको mysql देव लाइब्रेरी की कमी हो सकती है। इसे चलाकर स्थापित करें:

apt-get install libmysqlclient-dev

और mysqlclient स्थापित करने के लिए फिर से प्रयास करें:

pip install mysqlclient

2
यह था pip install mysqlclient। मैं अपनी आवश्यकताओं के लिए इसे जोड़ना भूल गया था। Txt फ़ाइल, इसलिए भले ही MySQL डेटाबेस वहाँ था और आबादी थी, मेरा Django वेब सर्वर इसके साथ बातचीत नहीं कर सका।
ब्लेयरगैग 23

इस उत्तर को धन्यवाद मेरे दिन को बचाया मैं 2 दिनों के लिए django के साथ mysql काम करने की कोशिश कर रहा
हूं

13

मेरा उत्तर @ रॉन-ई के समान है, लेकिन मुझे कुछ और त्रुटियां / सुधार मिले हैं इसलिए मैं मैक ओएसएक्स के लिए मेरे कदम नीचे रख रहा हूं और 2.7.6 पायथन।

  1. Python mysql पैकेज स्थापित करें (यदि आपको एक सफलता संदेश मिलता है, तो नीचे दिए गए चरणों की उपेक्षा करें)

    pip install mysql-python
  2. जब मैंने ऊपर किया, तो मुझे त्रुटि मिली "एन्वायरनमेंटर्रर: mysql_config नहीं मिला" यहां छवि विवरण दर्ज करें इसे ठीक करने के लिए, मैंने टर्मिनल में नीचे किया:

    export PATH=$PATH:/usr/local/mysql/bin
  3. जब मैं चरण 1 में भाग लेता हूं, तो मुझे एक नई त्रुटि मिलती है "त्रुटि: कमांड 'cc' निकास स्थिति 1 के साथ विफल रही" यहां छवि विवरण दर्ज करें इसे ठीक करने के लिए, मैंने टर्मिनल में नीचे किया:

     export CFLAGS=-Qunused-arguments
     export CPPFLAGS=-Qunused-arguments
  4. मैंने चरण 1 और सफलता का संदेश प्राप्त किया 'सफल रूप से स्थापित mysql-python'!


सुझाव के लिए धन्यवाद। मुझे आपकी समस्या सबसे पहले मिली।
user2772346

मैंने आपके रास्ते का अनुसरण किया है लेकिन मेरे मामले में पहली त्रुटि हमेशा होती है। और 'एक्सपोर्ट CFLAGS = -Qunused -र्कों के लिए' टर्मिनल वह त्रुटि दे रहा है:-bash: export: =-Qunused-arguments': not a valid identifier
RegarBoy

12

जब मैंने मैक ओएस एक्स माउंटेन लायन में अजगर के लिए पाइकार्म के लिए Django के विकास का माहौल स्थापित किया, तो इस लिंक के मालिक के रूप में मुझे त्रुटि मिली। हालांकि, उनके लिए मेरा जवाब जो मैक ओएस माउंटेन लॉयन x86_x64 (MySql और पायथन भी एक ही वास्तुकला होना चाहिए) के तहत अजगर- mysqldb चल रहा है) और पहले से ही पाइप और आदि की तरह सब कुछ करने की कोशिश की। क्रम में इस समस्या को ठीक चरणों का पालन करें:

  1. यहां से पायथन के लिए MySql डाउनलोड करें
  2. अनार डाउनलोड की गई फ़ाइल। टर्मिनल विंडो में निम्नलिखित कार्य करें: tar xvfz downloade.tar।
  3. सीडी / बिना निर्देशिका के
  4. भागो sudo python setup.py स्थापित करें
  5. अगर आपको कुछ इस तरह की त्रुटि मिलती है: "एनवायरनमेंट एरर: / usr / लोकल / बिन / mysql_config नहीं मिला" तो पथ गधा को जोड़ने का प्रयास करें: "PATH = $ PATH: / usr / local / mysql / bin" निर्यात करें। लेकिन आईडी से मुझे कोई फायदा नहीं हुआ और मुझे एक और उपाय सूझा। कमांड निष्पादन त्रुटि आउटपुट के अंत में जो इस तरह दिखता है:

    फ़ाइल "/path_to_file/MySQL-python-1.2.4b4/setup_posix.py", पंक्ति 25, mysql_config में एन्वायरनमेंटल जुटाइए ("% s नहीं मिला"% (mysql_config.path,))

  6. Vim के साथ setup_posix.py खोलें और पंक्ति 25 पर जाएं (आपके मामले में यह तब तक अलग हो सकता है जब तक कि यह एक ही संस्करण न हो)।

  7. जब तक आपके mysql का प्रतीकात्मक लिंक '/ usr / लोकल / mysql / bin /' है: जब तक आपके संपादन के बाद लाइन 25 इस तरह दिखना चाहिए।

    f = popen("%s --%s" % ('/usr/local/mysql/bin/mysql_config', what))

  8. इसके बाद मुझे निम्नलिखित के रूप में एक और त्रुटि मिली:

    django.core.exception.ImproperlyConfigured: MySQLdb मॉड्यूल को लोड करने में त्रुटि: dlopen (/Library/Python/2.7/site-packages/MySQL_pyth-1-1.4.44-py2.7-macosx-10.8-intel.egg/_ysysso) : लाइब्रेरी लोड नहीं: libmysqlclient.18.dylib से संदर्भित: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7 -macosx-10.8-intel.egg/_mysql.so कारण: छवि नहीं मिली

  9. अंत में मैंने सांत्वना में निम्नलिखित किया:

    सुडो ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

वर्तमान में सब कुछ ठीक है। इसलिए मुझे उम्मीद है कि यह मैक का उपयोग करने वाले किसी व्यक्ति के लिए उपयोगी होगा। :)


बहुत बहुत धन्यवाद। मुझे mysql haha ​​का उपयोग करके अपना पहला प्रोजेक्ट चलाने में लगभग एक सप्ताह लग गया।
पाब्लो

धन्यवाद एक टन आदमी! आपने मेरा दिन बचाया! मैं का उपयोग कर रहा था MAC और एक ही समस्या हो रही है।
user2772346

7

आप अजगर mysqldbपुस्तकालय को याद कर रहे हैं । इसे स्थापित करने के लिए इस कमांड (डेबियन / उबंटू के लिए) का उपयोग करें: sudo apt-get install python-mysqldb


यह एक उत्तर है, लेकिन मुझे लगता है कि यह बहुत अच्छा होगा यदि आप एक पंक्ति से अधिक विवरण जोड़ सकते हैं। धन्यवाद!
उली कोहलर

उपरोक्त कमांड हमें MySQL डेटाबेस में पायथन इंटरफ़ेस को स्थापित करने में मदद करता है।
हाइमी



4

Ubuntu 16.04 और 18.04 या अजगर 3 संस्करणों के लिए

sudo apt-get install python3-mysqldb

बहुत बहुत धन्यवाद। यह मेरे लिए काम करता है
seggabi

4

मैंने इस समस्या को इस वातावरण में हल किया है :

$ pyenv --version
pyenv 1.2.9

$ python --version
Python 3.7.2

$ python -m django --version
2.1.7

./settings.py

DATABASES = {
    'default': {
        'NAME': 'my_db_name',
        'ENGINE': 'mysql.connector.django',   # 'django.db.backends.mysql'
        'USER': '<user>',
        'PASSWORD': '<pass>',
        'HOST': 'localhost',
        'PORT': 3306,
        'OPTIONS': {
            'autocommit': True,
        },
    }
}

यदि आप उपयोग करते हैं 'ENGINE': 'mysql.connector.django', तो ड्राइवर निष्पादन स्थापित करें :

$ pip install mysql-connector-python
Successfully installed mysql-connector-python-8.0.15 protobuf-3.7.0 six-1.12.0

ध्यान दें कि $ pip install mysql-pythonमेरे लिए काम नहीं किया।

ध्यान दें कि यदि आप उपयोग करते हैं 'ENGINE': 'django.db.backends.mysql', तो आपको ड्राइवर निष्पादन स्थापित करना चाहिए:
$ pip install mysqlclient

अंत में निष्पादित करें:
$ python manage.py migrate

यदि यह सब ठीक है, तो अजगर इन सभी तालिकाओं को डेटाबेस बनाता है:

auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
django_admin_log
django_content_type
django_migrations
django_session


3

यदि आप pyhton संस्करण 3.4 या उससे ऊपर का उपयोग कर रहे हैं। आपको इंस्टॉल करना होगा

sudo apt-get install python3-dev libmysqlclient-dev 

टर्मिनल में। फिर pip install mysqlclientअपने वर्चुअल एनवी पर या जहां आपने पाइप स्थापित किया है।


2

विल के रूप में एक ही त्रुटि संदेश के साथ, यह मेरे लिए सबसे पहले mysql को स्थापित करने के लिए काम करता है क्योंकि स्थापना के दौरान लापता फ़ाइल को जोड़ा जाएगा। इतना होने के बाद

brew install mysql

pip install mysql-python

बिना त्रुटियों के भाग गया।


कमांड "/ usr / bin / python -u -c" import setuptools, tokenize; __ फ़ाइल __ = '/ Private / var / फ़ोल्डर्स / yn / nrq74lgs6kqdzcr355_5g280000gn / T / pip-build-jwQcm5 / mysql- pththn = getattr (tokenize, 'open', open) ( फाइल ); code = f.read () (प्रतिस्थापित) ('\ r \ n', '\ n'); f.close (); exec (संकलित (कोड); फ़ाइल , 'निष्पादित')) "स्थापित करें-record /var/folders/yn/nrq74lgs6kqdzcr035p_5g280000gn/T/pip-UmTWRJ-record/install-record.txt --single-version-externally-manage-compile" विफल हुआ। कोड 1 इन / प्राइवेट / वैर / फोल्डर / yn / nrq74lgs6kqdzcr035p_5g280000gn / T / pip-build-jwQcm5 / mysql-
pythor

2

यह मेरे साथ भी हुआ और मेरा मानना ​​है कि यह न केवल Django डेवलपर्स के लिए, बल्कि फ्लास्क के लिए भी एक सामान्य त्रुटि बन गई है, इसलिए जिस तरह से मैंने इस मुद्दे को हल किया वह काढ़ा का उपयोग कर रहा था।

  1. brew install mysql
  2. sudo pip install mysql-python

इस तरह से हर एक मुद्दे को हल किया गया और दोनों रूपरेखा बिल्कुल ठीक हैं।

पुनश्च: उन लोगों के लिए जो मैकपोर्ट्स का उपयोग करते हैं (जैसे कि स्वयं), यह एक मुद्दे के रूप में काढ़ा हो सकता है जो एक अलग स्तर में काम करता है, मेरी सलाह है कि मैकपोर्ट्स के बजाय काढ़ा का उपयोग करें

मुझे उम्मीद है कि मैं मददगार हो सकता हूं।


1

मुझे भी यही समस्या हो रही थी। निम्नलिखित ने मेरी समस्या हल कर दी

भागो pymysql स्थापित पिप अपने खोल में

उसके बाद, अपनी प्रोजेक्ट ओरिजिनल डायरेक्टरी में (सेटिंग्स के रूप में ही) init.py फाइल को एडिट करें और फिर

जोड़ें:

आयात pymysql

pymysql.install_as_MySQLdb ()

इससे समस्या हल हो जानी चाहिए।


"फिर, अपनी परियोजना मूल निर्देशिका में init.py फ़ाइल को संपादित करें" - क्या आपका मतलब है __init__.py?
एलेक्स यू

1

प्रयत्न:

pip install mysqlclient

मैं इसे एक आभासी वातावरण में उपयोग करने की सलाह देता हूं।


0

अन्य उत्तरों में जोड़ने के लिए, यदि आप Django का उपयोग कर रहे हैं, तो यह उचित है कि आप mysql-python से पहले Django स्थापित करें।



0

यदि त्रुटि इस तरह दिखती है

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module:
dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: 
/usr/local/opt/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so

फिर कोशिश करो :

pip install python-mysqldb

0

इसी तरह के मुद्दे का सामना किया। मैंने mysql-pythonपाइप का उपयोग करके स्थापित करने की कोशिश की , लेकिन यह जीसीसी निर्भरता त्रुटियों के कारण विफल रहा।

मेरे लिए जो समाधान काम आया

conda install mysql-python

कृपया ध्यान दें कि मेरे पास पहले से ही एनाकोंडा स्थापित था, जिसमें जीसीसी निर्भरता नहीं थी।


क्या आप इसके बारे में विस्तार से बता सकते हैं
आयुष वात्स्यायन

-2

लगता है जैसे आपके पास अजगर फ़ोल्डर की अनुमति नहीं है। प्रयत्नsudo chown -R $USER /Library/Python/2.7


-3

हो सकता है कि आप ऑपरेशन के निम्नलिखित मोड की कोशिश कर सकते हैं:
sudo python manage.py runserver 0.0.0.0:8000

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