django.core.exceptions.ImproperlyConfigured: MySQLdb modülü yüklenirken hata oluştu: MySQLdb adında modül yok


96

Mysql için veritabanına bağlanmaya çalışırken karşılaştığım sorun. Ayrıca kullandığım veritabanı ayarlarını da verdim.

 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

Veri Tabanı Ayarları ::

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.
    }
}

Yardım için çok teşekkürler !!

Yanıtlar:


136

Görünüşe göre python mysql paketiniz kurulu değil, şunu deneyin:

pip install mysql-python

veya bir sanal ortam kullanmıyorsanız (* nix ana bilgisayarlarda):

sudo pip install mysql-python

Sanal bir ortam mı kullanıyorsunuz? Sadece işleri düzenli tutmak için yapmanızı tavsiye ederim. Bu bir seçenek değilse, süper kullanıcı ayrıcalıklarıyla pip çalıştırmanız gerekir: sudo pip install mysql-python
Ron E

2
Sanal env kullanıyorum ve mysql, django yükledim ... ancak python manage.py syncdb yaptığımda bana gönderdiğim hatanın aynısını veriyor
getitstarted

şans eseri bir sürüm sorunum var mı? Sql (debian için 14.14) ile django 1.5, python 2.7.3 kullanıyorum
getitstarted

4
python 3 ile: pip install mysqlclient
sadalsuud

1
Bu python3'te çalışmıyor. python3'te bulunmayan ConfigParser gerektirir
gogagubi

40

python-mysqldb - MySQL'e Python arabirimi yüklemelisiniz

Deneyin
sudo apt-get install python-mysqldb


38

Mysqlclient'i pip ile kurmaya çalışırken hatalar alırsanız, mysql dev kitaplığınız olmayabilir. Çalıştırarak kurun:

apt-get install libmysqlclient-dev

ve mysqlclient yüklemeyi tekrar deneyin:

pip install mysqlclient

2
Öyleydi pip install mysqlclient. Bunu requirements.txt dosyama eklemeyi unutmuştum, bu yüzden MySQL veritabanı orada ve dolu olmasına rağmen, Django web sunucum onunla etkileşim kuramadı.
Blairg23

teşekkürler bu cevap günümü kurtardı
mysql'i

13

Cevabım @ Ron-E'ye benzer, ancak birkaç hata / düzeltme daha aldım, bu yüzden aşağıdaki adımlarımı Mac OSX için Mavericks ve Python 2.7.6 üzerine koyuyorum.

  1. Python mysql paketini kurun (eğer bir başarı mesajı alırsanız, aşağıdaki adımları atlayın)

    pip install mysql-python
    
  2. Yukarıdakileri yaptığımda, "EnvironmentError: mysql_config bulunamadı" hatasını aldım görüntü açıklamasını buraya girin Bunu düzeltmek için, terminalde aşağıdakileri yaptım:

    export PATH=$PATH:/usr/local/mysql/bin
    
  3. 1. adımı yeniden çalıştırdığımda, yeni bir hata alıyorum "hata: 'cc' komutu, çıkış durumu 1 ile başarısız oldu" görüntü açıklamasını buraya girin Bunu düzeltmek için, terminalde aşağıdakileri yaptım:

     export CFLAGS=-Qunused-arguments
     export CPPFLAGS=-Qunused-arguments
    
  4. 1. adımı yeniden uyguladım ve başarı mesajını aldım 'mysql-python başarıyla yüklendi'


Öneriniz için teşekkürler. İlk sorunun ben var.
user2772346

Senin yolunu takip ettim ama ilk hata her zaman benim durumumda oluyor. Ve 'CFLAGS = -Qunused-arguments dışa aktar' için terminal bu hatayı veriyor:-bash: export: =-Qunused-arguments': not a valid identifier
RegarBoy

12

Python, mysql, sequel pro uygulaması ile Mac OS X Mountain Lion'da PyCharm için Django geliştirme ortamını kurduğumda, bu iş parçacığının sahibiyle aynı hata mesajı aldım. Ancak, Mac OS Mountain Lion x86_x64 (MySql ve Python da aynı mimari olmalıdır) altında python-mysqldb çalıştıran ve zaten pip vb. Gibi her şeyi deneyenler için cevabım bu sorunu düzeltmek için aşağıdaki adımları uygulayın:

  1. Python için MySql'i buradan indirin
  2. İndirilen dosyanın taranmasını kaldırın. Terminal penceresinde şunları yapın: tar xvfz downloade.tar.
  3. cd / taranmayan dizine
  4. Sudo python setup.py install'ı çalıştırın
  5. Şuna benzer bir hata alırsanız: "Ortam Hatası: / usr / local / bin / mysql_config bulunamadı", ardından aşağıdaki yolu eklemeyi deneyin: "export PATH = $ PATH: / usr / local / mysql / bin". Ancak kimliğim bana yardımcı olmadı ve başka bir çözüm buldum. Aşağıdaki gibi görünen komut yürütme hatası çıktısının sonunda:

    Dosya "/path_to_file/MySQL-python-1.2.4b4/setup_posix.py", satır 25, mysql_config içinde EnvironmentError'ı yükseltin ("% s bulunamadı"% (mysql_config.path,))

  6. Setup_posix.py'yi vim ile açın ve 25. satıra gidin (Sizin durumunuzda, aynı sürüm değilse farklı olabilir).

  7. Mysql'inizde aşağıdaki gibi sembolik bağlantı olmadığı sürece 25. satır, düzenlemenizden sonra şöyle görünmelidir: '/ usr / local / mysql / bin /':

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

  8. Bundan sonra aşağıdaki gibi başka bir hata aldım:

    django.core.exceptions.ImproperlyConfigured: MySQLdb modülü yüklenirken hata oluştu: dlopen (/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2) : Kitaplık yüklenmedi: libmysqlclient.18.dylib Başvurulan kaynak: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so Neden: görüntü bulunamadı

  9. Sonunda konsolda şunları yaptım:

    sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Şu anda her şey yolunda gidiyor. Bu yüzden Mac kullanan biri için yararlı olacağını umuyorum. :)


Çok teşekkürler. İlk projemi mysql haha ​​kullanarak yürütmek neredeyse bir haftamı aldı. Phew ...
Avigit

Çok teşekkürler adamım! günümü kurtardın! Mac kullanıyordum ve aynı problemi alıyordum.
kullanıcı2772346

7

Python mysqldbkitaplığını kaçırıyorsunuz . Yüklemek için bu komutu (Debian / Ubuntu için) kullanın: sudo apt-get install python-mysqldb


Bu bir cevap, ancak tek bir satırdan daha fazla ayrıntı ekleyebilirseniz harika olacağını düşünüyorum. Teşekkürler!
Uli Köhler

Yukarıdaki komut, Python arayüzünü MySQL veritabanına yüklememize yardımcı olur.
Haimei

7

Bunun nedeni sql bağlayıcısının bulunmamasıdır. Deneyin:

pip install mysqlclient


6

Ben ettik çözüldü bu ortamda bu sorunu:

$ 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,
        },
    }
}

Kullanıyorsanız 'ENGINE': 'mysql.connector.django', sürücüyü çalıştırarak yükleyin:

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

Bunun $ pip install mysql-pythonbenim için çalışmadığını unutmayın .

Kullanıyorsanız, 'ENGINE': 'django.db.backends.mysql'sürücüyü çalıştırarak yüklemeniz gerektiğini unutmayın :
$ pip install mysqlclient

Sonunda yürütün:
$ python manage.py migrate

Sorun değilse, python tüm bu tabloların kimliği veritabanını oluşturur:

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

django.core.exceptions.ImproperlyConfigured: 'django.db.backends.django' kullanılabilir bir veritabanı arka ucu değil. XXX, 'mysql', 'oracle', 'postgresql', 'sqlite3' olan 'django.db.backends.XXX' kullanmayı deneyin. Pip3 install mysql ile 'ENGINE': 'mysql.connector.django' kullandım -connector-python Hala işe yaramadı
mountainLion

5

Ubuntu 16.04 ve 18.04 veya python 3 sürümleri için

sudo apt-get install python3-mysqldb

4

Pyhton 3.4 veya üstünü kullanıyorsanız. yüklemelisin

sudo apt-get install python3-dev libmysqlclient-dev 

terminalde. sonra pip install mysqlclientsanal ortamınıza veya pip'i kurduğunuz yere kurun .


3

Ubuntu'da dağıtım havuzunun kullanılması tavsiye edilir.

sudo apt-get install python-mysqldb

2

Will ile aynı hata mesajıyla, eksik dosya kurulum sırasında ekleneceği için önce mysql'yi kurmam için çalıştı. Yani sonra

brew install mysql

pip install mysql-python

hatasız koştu.


Command "/ usr / bin / python -u -c" import setuptools, tokenize; __ file __ = '/ private / var / klasörler / yn / nrq74lgs6kqdzcr035p_5g280000gn / T / pip-build-jwQcm5 / mysql-python / setup.py'; f = getattr (tokenize, 'open', open) ( file ); code = f.read (). replace ('\ r \ n', '\ n'); f.close (); exec (derleme (kod, dosya , 'exec')) "install --record /var/folders/yn/nrq74lgs6kqdzcr035p_5g280000gn/T/pip-UmTWRJ-record/install-record.txt --single-version-harici olarak yönetilen --compile" hata vererek başarısız oldu kod 1 / private / var / klasörler / yn / nrq74lgs6kqdzcr035p_5g280000gn / T / pip-build-jwQcm5 / mysql-python /
tisuchi

2

Bu benim de başıma geldi ve bunun sadece Django geliştiricileri için değil aynı zamanda Flask için de yaygın bir hata haline geldiğine inanıyorum, bu yüzden bu sorunu çözme şeklim brew kullanıyordu.

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

Bu şekilde her bir sorun çözüldü ve her iki çerçeve de kesinlikle iyi çalışıyor.

Not: Macports kullananlar için (benim gibi), bu bir sorun olabilir çünkü brew farklı bir seviyede çalışır, tavsiyem macports yerine brew kullanmalarıdır.

Umarım yardımcı olabilirim.


1

Ben de aynı sorunu yaşıyordum.Aşağıdaki sorunumu çözdü

Run pymysql yüklemek pip sizin kabuğunda

Ardından, proje kaynak dizininizdeki (settings.py ile aynı) init.py dosyasını düzenleyin ve ardından

Ekle:

ithal pymysql

pymysql.install_as_MySQLdb ()

bu sorunu çözmelidir.


"Daha sonra, proje kaynak dizininizdeki init.py dosyasını düzenleyin" - yani __init__.py?
Alex Yu

1

Deneyin:

pip install mysqlclient

Sanal ortamda kullanmanızı tavsiye ederim.


0

Sadece diğer cevaplara eklemek için, Django kullanıyorsanız, Django'yu kurmadan ÖNCE mysql-python kurmanız tavsiye edilir.



0

hata böyle görünüyorsa

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

o zaman dene :

pip install python-mysqldb

0

Benzer bir sorunla karşılaştı. Yüklemeyi denedimmysql-pythonPip kullanarak , ancak gcc bağımlılık hataları nedeniyle başarısız oldu.

Benim için çalışan çözüm

conda install mysql-python

Lütfen, gcc bağımlılığı olmayan anaconda'nın zaten kurulu olduğunu unutmayın.


detaylandırır mısın
Ayush Vatsyayan

0

Bunun sürüm hatası olduğunu düşünüyorum.

bunu aşağıdaki sırayla yüklemeyi deneyin:

  1. sudo apt-get install python3-mysqldb

  2. pip3 install mysqlclient

  3. python3 manage.py makemigrations

  4. python3 manage.py migrate


-2

Python klasörü için izniniz yok gibi görünüyor. Deneyinsudo chown -R $USER /Library/Python/2.7


-3

Belki aşağıdaki çalışma modunu deneyebilirsiniz:
sudo python manage.py runserver 0.0.0.0:8000

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.