Django manage.py syncdb throwing Нет модуля с именем MySQLdb

Я новичок, изучая Python / Django …

Я использую следующий учебник, расположенный здесь .

Создана база данных mysite в MySQL 5, работающая на Snow Leopard.

Отредактировал файл settings.py, чтобы он выглядел следующим образом:

DATABASE_ENGINE = 'mysql' DATABASE_NAME = 'mysite' DATABASE_USER = 'root' DATABASE_PASSWORD = '' DATABASE_HOST = '' DATABASE_PORT = '' 

Теперь, когда я запускаю следующую команду:

 python manage.py syncdb 

Я получаю следующую ошибку:

 Traceback (most recent call last): File "manage.py", line 11, in <module> execute_manager(settings) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ python2.6/site-packages/django/core/management/__init__.py", line 362, in execute_manager utility.execute() File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ python2.6/site-packages/django/core/management/__init__.py", line 303, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ python2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv self.execute(*args, **options.__dict__) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ python2.6/site-packages/django/core/management/base.py", line 221, in execute self.validate() File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ python2.6/site-packages/django/core/management/base.py", line 249, in validate num_errors = get_validation_errors(s, app) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ python2.6/site-packages/django/core/management/validation.py", line 22, in get_validation_errors from django.db import models, connection File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ python2.6/site-packages/django/db/__init__.py", line 41, in <module> backend = load_backend(settings.DATABASE_ENGINE) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages /django/db/__init__.py", line 17, in load_backend return import_module('.base', 'django.db.backends.%s' %backend_name) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ python2.6/site-packages/django/utils/importlib.py", line 35, in import_module __import__(name) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages /django/db/backends/mysql/base.py", line 13, in <module> raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb 

Что я могу делать неправильно?

Счастливое программирование …

5 Solutions collect form web for “Django manage.py syncdb throwing Нет модуля с именем MySQLdb”

 sudo easy_install mysql-python 

установит модуль MySQLdb, чтобы вы могли работать с MySQL с Python или, если вы хотите работать с virtualenv (что вам нужно),

 sudo easy_install virtualenv virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs export PIP_VIRTUALENV_BASE=$WORKON_HOME source /usr/local/bin/virtualenvwrapper_bashrc mkvirtualenv mysite pip install mysql-python django 

Поместит вас в virtualenv с текущей установкой django (вы можете указать, какую версию, например django == 1.1.1), и установить модуль MySQLdb. Использование virtualenv позволит вам иметь отдельные среды для разных проектов, чтобы вы могли устанавливать разные модули и даже использовать разные версии этих модулей (или Python) для разных проектов. Чтобы оставить вас virtualenv просто введите команду

 deactivate 

или, чтобы переключиться на тип среды «foo»

 workon foo 

Вы также должны, если вы собираетесь использовать virtualenv, добавьте эти три строки в ваш ~ / .bash_profile (на OS X, ~ / .bashrc вообще на Linux):

 export WORKON_HOME=$HOME/.virtualenvs # where virtualenvs should be created export PIP_VIRTUALENV_BASE=$WORKON_HOME # tells pip where to look for virtualenvs source /usr/local/bin/virtualenvwrapper_bashrc # bash completion and wrapper functions for virtualenv 

Проблема в том, что вам не хватает модуля Python, который взаимодействует с MySQL.

См. Документы Django для запуска вашей базы данных, что указывает на примечания MySQL .

Однако, если вы просто просматриваете учебник, гораздо проще использовать бэкэнд SQLite, встроенный в Python. Никаких драйверов, серверов и т. Д. Не требуется.

Стоит отметить (даже в этот поздний срок), что ошибка «Неправильноконфигурированная» ниже

Файл «/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/mysql/base.py», строка 13, в
raise Неправильноконфигурированный («Ошибка при загрузке модуля MySQLdb:% s»% e) django.core.exceptions.ImproperlyConfigured: Ошибка при загрузке модуля MySQLdb: нет модуля с именем MySQLdb

может быть красной селедкой в ​​тех случаях, когда mysql не работает – я сам просто искал эту ошибку, задаваясь вопросом, почему возникла некорректная конфигурация, и при поиске и подталкивании я запустил некоторую другую команду manage.py и получил это подобное, но гораздо более полезно, ошибка:

Файл «~ / .virtualenvs / mdid3 / lib / python2.7 / site-packages / MySQLdb / connections.py», строка 187, в init

super (Connection, self). init (* args, ** kwargs2)

_mysql_exceptions.OperationalError: (2003, «Не удается подключиться к серверу MySQL на« 127.0.0.1 »(61)»)

После проверки mysqld, если он не работает и не запускается, моя ошибка конфигурации была чудом исправлена!

Попробуйте, если вы используете

linux: – sudo apt-get install python-mysqldb

windows: – pip install python-mysqldb или easy_install python-mysqldb

Надеюсь, это сработает

Убедитесь, что вы создали свою базу данных и на вашем сервере MySQL работает, попробуйте подключиться к базе данных, чтобы проверить правильность имени базы данных, имени пользователя и пароля. затем выполните:

1) pip install mysqlclient

2) python manage.py migrate

  • Могу ли я установить Python 2.7.1 на 64-битную сторону на 32-разрядную установку на OS X?
  • Установка psyco для python на Snow Leopard
  • ImportError: нет модуля с именем Foundation
  • Установка PIL на Snow Leopard - НИЧЕГО РАБОТЫ
  • Django + MySQL на Mac OS 10.6.2 Snow Leopard
  • Как установить rpy2 в Mac OS X
  • Python: невозможно отобразить Tex в Matplotlib
  • Как я могу захватить кадры iSight с помощью Python в Snow Leopard?
  • Python - лучший язык программирования в мире.