Подтвердить что ты не робот

Python3 + MySql: Ошибка при загрузке модуля MySQLdb: нет модуля с именем 'MySQLdb'

Я новичок в Python и пытаюсь настроить проект Django для работы с MySql. Я прочитал документацию, а также некоторые другие сообщения StackOverflow по этой теме, но я все еще не могу заставить ее работать.

Когда я пытаюсь выполнить миграцию в Django, я получаю следующую ошибку:

Error loading MySQLdb module: No module named 'MySQLdb'

Я установил рекомендуемый MySql Python Connector (2.0.1), выбрав Ubuntu (так как я на Mint Linux). Он устанавливается правильно. Я все еще получаю ошибку. Мне не нужно добавлять эту библиотеку в проект или что-то еще, не так ли? Похоже, что python должен просто знать об этом и успешно работать. Что я могу сделать? Спасибо.

EDIT: я забыл упомянуть: я запускаю Python 3.4 - многие типичные решения все еще используют 2.7, поэтому они не работают, и все решения с 3.0 я пробовал без успеха.

4b9b3361

Ответ 1

Мне нужно будет увидеть вашу конфигурацию DATABASES в settings.py, но похоже, что она пытается загрузить MySQLDB вместо установленного вами Mysql Python Connector. БАЗЫ ДАННЫХ должны выглядеть примерно так:

DATABASES = {
    'default': {
        'NAME': 'mydatabase',
        'ENGINE': 'mysql.connector.django',
        'USER': 'myuser',
        'PASSWORD': 'secretpassword',
        'OPTIONS': {
          'autocommit': True,
        },
    }
}

Обратите внимание на часть ENGINE..., которая сообщает Django использовать соединитель mysql вместо MySQLDB...

Дополнительная информация доступна здесь: http://bunwich.blogspot.com/2014/02/finally-mysql-connector-that-works-with.html http://dev.mysql.com/doc/connector-python/en/connector-python-django-backend.html

и если вы ожидаете использовать Юг:

www.pythonanywhere.com/wiki/UsingMySQL

Возможно, вы захотите отметить, что соединитель Oracle - это GPL, и с этим кодом могут возникнуть проблемы с лицензией. См. Здесь:

groups.google.com/forum/#!/Тема Джанго-разработчиков/8r_RVmUe5ys

Документация Django 1.7 рекомендует использовать драйвер mysqlclient...

docs.djangoproject.com/en/1.7/ref/databases/ - см. раздел "Драйверы API Mysql DB"

pypi.python.org/pypi/mysqlclient для этого клиента...

-Скотт

Ответ 2

Если вы можете установить pymysql, который хорошо работает для меня с Python 3.4, добавьте эти строки в файл manage.py в Django:

try:
    import pymysql
    pymysql.install_as_MySQLdb()
except ImportError:
    pass

Это сделает функцию pymysql, такую ​​как MySQLdb, и сработает для меня.

Ответ 3

Ни один из существующих ответов не работал у меня на Ubuntu Server 16.04, поэтому я побежал:

sudo apt-get install libmysqlclient-dev
sudo -H pip3 install mysqlclient

Первая команда возвращает мне конфигурацию mysql, необходимую для второй команды.

Ответ 4

pip install mysqlclient  работает для меня python3.5