Нет модуля с именем MySQLdb

400

Я использую Python версии 2.5.4 и устанавливаю MySQL версии 5.0 и Django. Django отлично работает с Python, но не с MySQL. Я использую его в Windows Vista.

jbcedge
источник
43
pip install mysql-pythonилиpip install mysqlclient
Cœur
13
Я должен был установить, sudo apt-get install libmysqlclient-devчтобы это работало.
b00r00x0
pip install mysqlclient работал на windows x64 10, Вы качаете Cœur
Итачи Сама
8
Для Python3.6 sudo apt-get install libmysqlclient-devи pip3 install mysqlclientработал для меня
Umair

Ответы:

639

Вам необходимо использовать одну из следующих команд. Какой из них зависит от того, какую ОС и программное обеспечение вы используете и используете.

  1. easy_install mysql-python (mix os)
  2. pip install mysql-python (mix os / python 2)
  3. pip install mysqlclient (mix os / python 3)
  4. apt-get установить python-mysqldb (Linux Ubuntu, ...)
  5. cd / usr / ports / database / py-MySQLdb && make install clean (FreeBSD)
  6. ням установить MySQL-python (Linux Fedora, CentOS ...)

Для Windows смотрите этот ответ: Установите mysql-python (Windows)

ДЕРЕВО
источник
1
Мне пришлось обновить мою версию setuptools, чтобы она соответствовала моей обновленной версии python для Mac OS, прежде чем я смог заставить это работать.
Джонатан Адельсон
4
а как насчет установки на virtualenv с python 3 на нем? Я использовал: pip install mysql-python только для получения: ImportError: Нет модуля с именем ConfigParser
Илиян Бобев
9
В Python 3 ConfigParser был переименован в configparser для соответствия PEP 8. Похоже, что устанавливаемый вами пакет не поддерживает Python 3. MySQL-python в настоящее время не поддерживает Python 3.
derevo
2
Я получаю эту ошибку при использовании 1 или 2 в OSX Yosemite:EnvironmentError: mysql_config not found
Мона Джалал
1
К вашему сведению - я на Ubuntu 18 и использую python3.7. После выполнения «pip install mysqlclient» мне нужно было выполнить «sudo apt-get install libmysqlclient-dev» для успешной установки.
Рашми Сингх
144

... и помните, что нет MySQLdb для python3.x

(Я знаю, что вопрос о python2.x, но Google оценивает этот пост довольно высоко)


РЕДАКТИРОВАТЬ: Как указано в комментариях, есть вилка MySQLdb, которая добавляет поддержку Python 3: github.com/PyMySQL/mysqlclient-python

Янек Ольшак
источник
Черт возьми ... мои надежды на использование python3 в моем приложении Django
Дон Чидл
6
К счастью, есть выбор альтернатив, многие из которых используют один и тот же API: Python 3 и MySQL
Энтони Геогеган
4
mysqlclient - это форк MySQLdb, который хорошо работает с Python 3.
ostrokach
@JanekOlszak Я не знал этого - потребовалось около дня много ругательств и ударов по клавиатуре - пока не прочитал это и не переключился на 2,7. И угадайте, что, все работает hunky-dory ~
3kstc
Мое путешествие, это -> это -> это . И тогда я наконец смог успешно установить его.
дак
68

если у вас есть версия Python 3.5, сделайте pip install mysqlclient, другие вещи не работают для меня

Goksel
источник
Я не знаю, почему этот ответ был отклонен, но mysqlclientявляется ответвлением проекта MySQLdb, и я могу подтвердить, что это сработало для меня в Windows 10
Хамман Самуэль,
1
Работал для меня на arch linux
Люк Дюпин
Работал на Ubuntu 16.10, Python 3.5.2+
tivadj
Работал на Ubuntu 14.04 Python 3.4.3
gpk27
Работал на macOS, Python 3.6.0
Мигель Мота,
48

mysqldbэто модуль для Python, который не поставляется с предустановленной или с Django. Вы можете скачать mysqldb здесь .

Эван Фосмарк
источник
1
При попытке установить MySQL-python-1.2.1 я получаю сообщение ImportError: Нет модуля с именем setuptools При попытке установить setuptools у меня получается, что zlib недоступен , разве он не должен быть связан с python?
Пьер де ЛЕСПИНАЙ
после загрузки модуля вам нужно отредактировать файл site.cfg с правильным путем для mysql_config и запуститьpython setup.py install
ntanase
25

Обратите внимание, что это не проверено для Python 3.x

В CMD

pip install wheel
pip install pymysql

в settings.py

import pymysql
pymysql.install_as_MySQLdb()

Это работало со мной

A.Raouf
источник
3
«pip3 install mysqlclient» решает проблему для python3.6 /
showmyroutes
Я не могу высказать это достаточно! Единственное решение, которое работает на Databricks ..
Foxan Ng
13
pip install PyMySQL

а затем добавьте эти две строки в ваш проект / проект / init .py

import pymysql
pymysql.install_as_MySQLdb()

Работает на WIN и Python 3.3+

alphiii
источник
Я успешно использовал ваше предложение. Единственное изменение было в команде import: import pymysql Был при типе.
Хорхе
работал для меня на windows10, python 3.6, виртуальной среде
Yikang Luo
1
Люблю этот хак. Хотя мне удалось заставить его работать без него, все же пришлось включить бинарный файл whql.
Измаил
Должен быть правильный ответ.
Джосси Кальдерон
12

Попробуй это.

pip install MySQL-python
Венкат Котра
источник
2
Как это относится конкретно к виртуальным средам?
Тим
9

для окна:

pip install mysqlclient pymysql

тогда:

импорт pymysql pymysql.install_as_MySQLdb ()

для Python 3 Ubuntu

sudo apt-get install -y python3-mysqldb
Саурабх Чандра Патель
источник
Запуск только «pip install mysqlclient pymysql» в Windows 10 (Python 3.6.2) решил мою проблему.
Рик Сарвас
8

Если pip install mysqlclient выдает ошибку и вы используете Ubuntu, попробуйте:

sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient
Kostyantyn
источник
6

Я встречал ту же ситуацию под окнами и искал решение.

Увидев этот пост, установите mysql-python (Windows) .

Это указывает на то, что установка такой pip-среды сложна, требует множества других зависимостей.

Но я наконец-то знаю, что если мы используем mysqlclientверсию ниже 1.3.4, то эти требования больше не нужны, поэтому попробуйте:

pip install mysqlclient==1.3.4
Альфред Хуан
источник
4
  • Перейдите в каталог вашего проекта с cd.
  • источник / bin / activ (активируйте свою среду, если не ранее).
  • Запустите команду easy_install MySQL-python
GrvTyagi
источник
1
Не работаетModuleNotFoundError: No module named 'ConfigParser'
TomSawyer
4
pip install --user mysqlclient 

выше, работает для меня как очарование для меня. Я иду ошибка от sqlalchemy на самом деле. Информация об окружающей среде:

Python: 3.6, Ubuntu: 16.04, conda 4.6.8

Forhad
источник
3

Спасибо дереву, но я думаю, что есть еще один хороший способ сделать это:

  1. Скачайте и установите ActivePython
  2. Открыть командную строку
  3. Тип pypm install mysql-python
  4. Прочитайте примечания, специфичные для этого пакета.

Я думаю, что pypmэто более мощный и надежный, чем easy_install.

Афшин Мехрабани
источник
Похоже, это требует платной подпискиCan't install mysql-python-1.2.3: requires Business Edition subscription
Джереми С.
Я так не думаю. Я помню, что установил это без проблем.
Афшин Мехрабани
почему вы думаете, что pypm более мощный и надежный, чем easy_install? какие-нибудь пункты, чтобы поддержать это? какие-нибудь статьи / блогпосты?
Сандип Раджу Прабхакар
2
Я думаю, что это будет статья / сообщение в блоге, чтобы поддержать это: PI означает, давай, ты поддерживаешь такой комментарий с типично техническими аргументами, а не с кем-то еще, кто утверждает то же самое, но также может не иметь аргументов. Тем не менее, аргументы были бы хорошими;)
Герберт
3

Для версии Python 3+

установить mysql-connectorкак:

pip3 install mysql-connector 

Пример кода подключения к Python DB:

import mysql.connector
db_connection = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd=""
)
print(db_connection)

Вывод:

> <mysql.connector.connection.MySQLConnection object at > 0x000002338A4C6B00>

Это означает, что база данных правильно подключена.

Ом Сао
источник
3

Я лично рекомендую использовать pymysqlвместо использования подлинного коннектора MySQL, который предоставляет вам независимый от платформы интерфейс и может быть установлен через него pip.

И вы можете редактировать схему URL SQLAlchemy следующим образом: mysql+pymysql://username:passwd@host/database

Джастин ли
источник
3

Для Python 3.6+ sudo apt-get install libmysqlclient-devи pip3 install mysqlclient делает свое дело

Umair
источник
2

Если вы работаете в Vista, вы можете проверить стек Bitnami Django. Это универсальный стек Apache, Python, MySQL и т. Д., Поставляемый с кроссплатформенными установщиками Bitrock, чтобы действительно легко начать работу. Он работает на Windows, Mac и Linux. Ох и совершенно бесплатно :)

Даниэль Лопес
источник
Тогда почему вы сказали «Если вы работаете в Vista», если она будет работать на более чем Vista? Это вводит в заблуждение и сбивает с толку.
Энтони
3
Энтони: Мне показалось забавным, что в комментарии, получившем наибольшее количество голосов, содержатся инструкции для Linux, FreeBSD и OSX, но не для Vista, как указано на плакате
Даниэль Лопес
2

Я пробовал методы выше, но до сих пор нет модуля с именем «MySQLdb», наконец, мне удается

easy_install mysql-python

мой env unbuntu 14.04

Pythoner
источник
успех для virtualenv / python2.7
nguyên
1

У меня на OSX эти команды работали

brew install mysql-connector-c 
pip install MySQL-python
Джо Иннер
источник
1

Если вы используете SQLAlchemy и ошибка в /site-packages/sqlalchemy/dialects/mysql/mysqldb.py:

from ...connectors.mysqldb import (
                        MySQLDBExecutionContext,
                        MySQLDBCompiler,
                        MySQLDBIdentifierPreparer,
                        MySQLDBConnector
                    )

так что вы могли пропустить соединитель mysqldb для, SQLAlchemyи решение состоит в том, чтобы переустановить sqlalchemy после установки mysql-pythonмодуля.

mtoloo
источник
0

Win10 / Python27 это работает для меня:

easy_install mysql-python

все другие «установки pip ...» не удалось с ошибками зависимости

Cris
источник
0

Ничто из вышеперечисленного не помогло мне в новой установке Ubuntu 18.04 через образ докера.

Следующее решило это для меня:

apt-get install holland python3-mysqldb

jfxninja
источник
0

На моем Mac под управлением Catalina v10.15.2 у меня был следующий конфликт версий MySQLdb:

ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)

Чтобы решить это, я сделал следующее:

pip uninstall MySQL-python
pip install MySQL-python
ScottK
источник
0

На Debian Buster у меня работает следующее решение с python 3.7:

sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient
nsssayom
источник
0

Я нахожусь в Ubuntu (Linux), и что работало для меня было

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

и, наконец,

pip install mysqlclient
Арсалан Ахмад Исхак
источник