2013-03-09 3 views
68

Проблема, с которой я сталкиваюсь при попытке подключения к базе данных для mysql. Я также дал настройки базы данных, которые я использовал.django.core.exceptions.ImproperlyConfigured: Ошибка при загрузке модуля MySQLdb: Нет модуля с именем MySQLdb

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

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

ответ

109

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

pip install mysql-python 

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

sudo pip install mysql-python 
+0

Вы используете виртуальную среду? Я рекомендую вам только для того, чтобы все было организовано. Если это не вариант, вам нужно запустить pip с привилегиями суперпользователя: sudo pip install mysql-python –

+1

Я использую виртуальный env, и я установил mysql, django ... однако, когда я делаю python manage.py syncdb Это дает мне ту же ошибку, что я опубликовал – getitstarted

+0

Есть ли у меня проблема с версией на случай? Я использую Django 1.5, питон 2.7.3 с моим SQL (14.14 для Debian) – getitstarted

29

у вас есть установить питона-MySQLDb - Python интерфейс для MySQL

Попробуйте
sudo apt-get install python-mysqldb

0

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

11

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

  1. Загрузить MySql для Python от here
  2. Untar загруженный файл. В окне терминала выполните следующие действия: tar xvfz downloade.tar.
  3. кд/в untared каталог
  4. Run Судо питон setup.py установить
  5. Если вы получаете ошибку что-то вроде этого: «Ошибка окружающей среды:/USR/местные/бен/mysql_config не найден», то попробуйте добавить путь Последовательность: "export PATH = $ PATH:/usr/local/mysql/bin". Но id не помог мне, и я нашел другое решение. В конце выполнения команды вывода ошибок, который выглядит следующим образом:

    Файл «/path_to_file/MySQL-python-1.2.4b4/setup_posix.py», строка 25, в mysql_config повышают EnvironmentError («% S не найден» % (mysql_config.path,))

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

  7. Линия 25 должна выглядеть после редактирования, если ваш MySQL не имеют символические ссылки, как следует '/ USR/местные/MySQL/бен /':

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

  8. После этого я получил другую ошибку следующим образом:

    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 Причина: изображение не найдено

  9. Наконец я следующий в консоли:

    Судо пер -s/USR/местные/MySQL/Библиотека/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

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

+0

Большое спасибо. Мне потребовалось почти неделю, чтобы запустить мой первый проект, используя mysql haha. Phew ... – Avigit

+0

Спасибо, человек! ты спас мой день! Я использовал mac и получал такую ​​же проблему. – user2772346

3

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

sudo apt-get install python-mysqldb 
5

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

+0

Это ответ, но я думаю, было бы здорово, если бы вы могли добавить больше деталей, чем одну строку. Благодаря! –

+0

Выше команда помогает нам установить интерфейс Python в базу данных MySQL. – Haimei

9

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

  1. Установите MySQL пакет Python (если вы получите сообщение об успехе, то игнорировать следующие шаги)

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

    export PATH=$PATH:/usr/local/mysql/bin 
    
  3. Когда я перезапустил ул ер 1, я получаю новую «ошибку: команда„куб.см“не удался со статусом выхода 1» ошибками enter image description here Чтобы исправить это, я сделал ниже в терминале:

    export CFLAGS=-Qunused-arguments 
    export CPPFLAGS=-Qunused-arguments 
    
  4. Я перезапустил шаг 1 и получил Успешное сообщение «Успешно установлен mysql-python»!

+0

Спасибо за предложение. У меня есть первая проблема. – user2772346

+0

Я пошел по твоему пути, но первая ошибка всегда происходит в моем случае. И для 'export CFLAGS = -Qunused-arguments ' terminal предоставляет эту ошибку: '-bash: export: = -Qunused-arguments ': недействительный идентификатор ' – developer

1

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

brew install mysql 

pip install mysql-python 

бежал без ошибок.

+0

Команда "/ usr/bin/python -u - c "import setuptools, tokenize; __ файл __ = '/ private/var/folders/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 (компиляция (код, __file__, 'exec')) "install - record /var/folders/yn/nrq74lgs6kqdzcr035p_5g280000gn/T/pip-UmTWRJ-record/install-record.txt --single-version-external-managed -compile "не удалось с кодом ошибки 1 в/private/var/folders/yn/nrq74lgs6kqdzcr035p_5g280000gn/T/pip-build-jwQcm5/mysql-python/ – tisuchi

15

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

apt-get install libmysqlclient-dev 

и повторите попытку установить mysqlclient:

pip install mysqlclient 
+1

Это был 'pip install mysqlclient'. Я забыл добавить это в свой файл requirements.txt, поэтому, хотя база данных MySQL была и заселена, мой веб-сервер Django не мог с ней взаимодействовать. – Blairg23

0

Я потратил много времени на это. Оказывается, что база данных по умолчанию для Python 3 не поддерживается.You have to use a different one.

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

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

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

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

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

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

-1

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

0

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

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

conda install mysql-python 

Пожалуйста, обратите внимание, что я уже установил анаконда, которая не имела Gcc зависимость.

+0

Пакет не найден ошибки. –

+0

Не могли бы вы рассказать об этом –

0

Для Ubuntu 16.04 или питон 3 версии

sudo apt-get install python3-mysqldb 
Смежные вопросы