Как использовать mysql в django?

433
26 ноября 2016, 20:24

Использую django с python3. При pip install mysql-python выдает ошибку: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-kgys_quh/mysql-python/. Пробовал делать из venv, тоже самое

Answer 1

Вы бы выложили полный лог с ошибками, было бы понятнее почему у вас не работает.

Есть два способа использования mysql в python.

Вариант 1. Как пишут во всех статьях

Дело в том, что все коннекторы к базам необходимо компилировать ввиду их конструктивных особенностей. Конечно же в случае использования pip он делает это за вас. Однако в вашей системе должны быть заголовочные файлы для компиляции. Вы не указали систему, поэтому для debian-based систем в т.ч. ubuntu:

sudo apt-get install python-pip python-dev libmysqlclient-dev

Далее необходимо повторить установку через pip

pip install MySQL-python
Вариант 2. Более правильный

Дело в том, что мейнтейнеры не дураки и всё собрали за вас. Соответственно вам надо установить пакет из репозитория, который содержит уже скомпилированный mysql-python.

Для debian-based опять же команда следующая:

sudo apt-get install python-mysqldb

Если у вас python3, тогда пакет немного другой:

sudo apt-get install python3-mysqldb

После этого у вас глобально появится модуль для подключения к mysql.

Однако это не всё. Если вы используете virtualenv (или venv в python3), то необходимо создать виртуальное окружение так, чтобы оно включало в себя глобальные пакеты. Делается это командой virtualenv venv --system-site-packages (или для python3 python3 -m venv --system-site-packages). После этого оно будет включать как глобальные пакеты, так и установленные непосредственно в окружение. Ставить через pip такие пакеты не нужно, ровно как и выносить их в файл requirements.

READ ALSO
Как запретить UPDATE если не совпали интервалы?

Как запретить UPDATE если не совпали интервалы?

В таблице строки сгенерированы изначально (список пин-кодов) и далее только обновляются два поля: статус status (с 0 на 1 и обратно) и поле номер...

340
ON DUPLICATE KEY UPDATE в Medoo.in

ON DUPLICATE KEY UPDATE в Medoo.in

Сложно мне изменить класс, опыта малоКак бы добавить в Medoo возможность обновлять данные через ON DUPLICATE KEY UPDATE

462
Не могу создать триггер

Не могу создать триггер

Добрый деньЕсть таблица:

256