Django.core.exceptions.ImproperlyConfigured: Ошибка при загрузке модуля MySQLdb: нет модуля с именем MySQLdb

Проблема Im сталкивается при попытке подключиться к базе данных для 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

Настройки Databse::

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

Большое спасибо за помощь!

Ответ 1

Похоже, что у вас не установлен пакет python mysql, попробуйте:

pip install mysql-python

или если не используется виртуальная среда (на хостах * nix):

sudo pip install mysql-python

Ответ 2

вам нужно установить python-mysqldb - интерфейс Python в MySQL

Попробовать sudo apt-get install python-mysqldb

Ответ 3

Если вы получаете ошибки при попытке установить mysqlclient с помощью pip, вам может не хватить библиотека mysql dev. Установите его, запустив:

apt-get install libmysqlclient-dev

и попробуйте еще раз установить mysqlclient:

pip install mysqlclient

Ответ 4

Когда я установил среду разработки Django для PyCharm в Mac OS X Mountain Lion с помощью python, mysql, proxy pro pro, я получил ошибку, аналогичную владельцу этого потока. Тем не менее, мой ответ для тех, кто запускает python-mysqldb под Mac OS Mountain Lion x86_x64 (MySql и Python также должен быть такой же архитектуры), и уже пробовал все, как pip и т.д. Чтобы устранить эту проблему, выполните следующие шаги:

  • Загрузите MySql для Python из здесь
  • Загруженный файл Untar. В окне терминала выполните следующие действия: tar xvfz downloade.tar.
  • cd/в неиспользуемый каталог
  • Запустите sudo python setup.py install
  • Если вы получите ошибку примерно так: "Ошибка среды:/usr/local/bin/mysql_config не найдена", попробуйте добавить путь: "export PATH = $PATH:/usr/local/mysql/бен". Но id не помог мне, и я нашел другое решение. В конце вывода ошибки выполнения команды, которая выглядит так:

    Файл "/path_to_file/MySQL-python-1.2.4b4/setup_posix.py", строка 25, в mysql_config raise EnvironmentError ( "% s not found" % (mysql_config.path,))

  • Откройте setup_posix.py с помощью vim и перейдите к строке 25 (в вашем случае это может быть иначе, если только в той же версии).

  • Строка 25 должна выглядеть так после редактирования, если у вашей mysql нет символической ссылки, например, следующим образом:/usr/local/mysql/bin/:

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

  • После этого я получил еще одну ошибку:

    django.core.exceptions.ImproperlyConfigured: Ошибка при загрузке модуля MySQLdb: dlopen (/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2): библиотека не загружена: libmysqlclient.18.dylib Ссылки:/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so Причина: изображение не найдено

  • Наконец, я сделал следующее в консоли:

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

В настоящее время все работает нормально. Поэтому я надеюсь, что это будет полезно для тех, кто использует Mac.:)

Ответ 5

Мой ответ похож на @Ron-E, но я получил еще несколько ошибок/исправлений, поэтому я делаю свои шаги ниже для Mac OSX на Mavericks и Python 2.7.6.

  • Установите пакет Python mysql (если вы получите сообщение об успешном завершении, затем проигнорируйте приведенные ниже шаги)

    pip install mysql-python
    
  • Когда я сделал это, я получил сообщение об ошибке "EnvironmentError: mysql_config не найден"   enter image description here  Чтобы исправить это, я сделал следующее в терминале:

    export PATH=$PATH:/usr/local/mysql/bin
    
  • Когда я делаю повторный шаг 1, я получаю новую ошибку "error: command 'cc' failed with exit status 1" enter image description here  Чтобы исправить это, я сделал следующее в терминале:

     export CFLAGS=-Qunused-arguments
     export CPPFLAGS=-Qunused-arguments
    
  • Я повторил шаг 1 и получил сообщение об успешном завершении "Успешно установленный mysql-python"!

Ответ 7

Вам не хватает библиотеки python mysqldb. Используйте эту команду (для Debian/Ubuntu), чтобы установить ее: sudo apt-get install python-mysqldb

Ответ 8

Это потому, что он не нашел соединитель sql. попробуйте:

pip install mysqlclient

Ответ 9

В Ubuntu рекомендуется использовать репозиторий дистрибутивов.

sudo apt-get install python-mysqldb

Ответ 10

Это произошло и со мной, и я считаю, что это стало распространенной ошибкой не только для разработчиков Django, но также и для Flask, поэтому я решил эту проблему использовать brew.

  • brew install mysql
  • sudo pip install mysql-python

Таким образом, каждая проблема была решена, и обе структуры работают абсолютно нормально.

P.S.: Для тех, кто использует macports (например, я), это может быть проблемой, поскольку brew работает на другом уровне, мой совет - использовать brew вместо macports

Надеюсь, я мог бы быть полезен.

Ответ 11

Для версий Ubuntu 16.04 и 18.04 или python 3

sudo apt-get install python3-mysqldb

Ответ 12

С тем же сообщением об ошибке, что и воля, мне сначала нужно было установить mysql, поскольку отсутствующий файл будет добавлен во время установки. Итак, после

brew install mysql

pip install mysql-python

работает без ошибок.

Ответ 13

Чтобы добавить к другим ответам, если вы используете Django, рекомендуется установить mysql-python перед установкой Django.

Ответ 15

если ошибка выглядит так:

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

Ответ 16

Столкнулся с подобной проблемой. Я попытался установить mysql-python с помощью pip, но он не удалось из-за ошибок gcc-зависимостей.

Решение, которое сработало для меня

conda install mysql-python

Обратите внимание, что у меня уже установлена ​​анаконда, у которой не было зависимости gcc.

Ответ 17

У меня была та же проблема. Следующее решило мою проблему

Запустите pip install pymysql в своей оболочке

Затем отредактируйте файл init.py в исходной директории вашего проекта (так же, как settings.py) а затем

добавить:

импорт pymysql

pymysql.install_as_MySQLdb()

Это должно решить проблему.

Ответ 18

Если вы используете Pyhton версии 3.4 или выше. Вы должны установить

sudo apt-get install python3-dev libmysqlclient-dev 

в терминале. затем установите pip install mysqlclient в вашем виртуальном окружении или там, где вы установили pip.

Ответ 19

I've Я решил эту проблему в этой среде:

$ 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

Если все в порядке, python создает базу данных id всех этих таблиц:

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

Ответ 20

попробуйте:

pip install mysqlclient

Я рекомендую использовать его в виртуальной среде.

Ответ 21

Возможно, вы можете попробовать следующий режим работы:
sudo python manage.py runserver 0.0.0.0:8000

Ответ 22

Похоже, у вас нет прав доступа к папке Python. Попробуйте sudo chown -R $USER /Library/Python/2.7