Нужно ли мне устанавливать MySQL в виртуальной среде Django, если у меня уже есть MySQL на моей машине? - PullRequest
1 голос
/ 28 мая 2019

Я уже установил mysql 5.1 на мой компьютер с Windows 10, и я могу подключить mysql из python:

import pymysql
conn=pymysql.connect(host='localhost',user='root',password='MYSQLTB',db='shfuture')

, затем я загружаю фрейм django и пытаюсь использовать его для подключения mysql, что я делаюis:

создать содержимое файла my.cnf:

[client]
database = shfuture
host = localhost
user = root
password = MYSQLTB
default-character-set = utf8

изменить settings.py на:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': os.path.join(BASE_DIR, 'my.cnf'),
        },
    }
}

, затем запустить:

python manage.py runserver

но получил ошибку:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install the MySQL client?

Нужно ли мне устанавливать дополнение MySQL в виртуальной среде Django?если я могу использовать существующий MySQL вместо

Ответы [ 5 ]

1 голос
/ 28 мая 2019

Да, конечно. Вам необходимо установить пакет 'mysqlclient' или пакет 'mysql-connector-python' с помощью pip.

0 голосов
/ 28 мая 2019

Оба PyMySQL и MySQLdb являются соединителями дБ. Я предполагаю, что ваш фреймворк django по умолчанию ищет MySQLdb и выдает исключение, потому что он не может его найти.

Вы можете установить MySQLdb или следовать ответу @ ruddra. Я бы порекомендовал вам пойти с ответом @ ruddra в случае разработки машины. Потому что есть много проблем, с которыми вы можете (50/50 шансов) столкнуться при установке и настройке MySQLdb для правильной работы.

Чтение Что такое PyMySQL и чем он отличается от MySQLdb? Может ли это повлиять на развертывание Django? , чтобы понять больше об этом.

0 голосов
/ 28 мая 2019

Обычно вам нужно поместить следующий код поверх manage.py и wsgi.py, например:

#!/usr/bin/env python
import os
import sys
<b>import pymysql</b>
<b>pymysql.install_as_MySQLdb()</b>
# rest of the code

Также вам необходимо убедиться, что в вашей виртуальной среде установлено pymysql.

К вашему сведению: Использование pymysql может не работать в django> = 2.2 . Вы найдете какое-то решение, которое может работать, как упомянуто в this ticket. Кроме того, django официально не поддерживает pymysql как соединитель mysql (тикет #12500, #22391).

0 голосов
/ 28 мая 2019

Да, вы должны переустановить mysql для django в виртуальной среде снова. Для окон вы можете сделать: -

pip install django mysqlclient

0 голосов
/ 28 мая 2019

Я полагаю, у вас не установлена ​​mysqlclient библиотека Python в виртуальной среде.

Поскольку вы используете Windows, вам необходимо загрузить и установить mysqlclient библиотеку Python из здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...