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


400

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


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, другие вещи не работают для меня


Я не знаю, почему этот ответ был отклонен, но 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()

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


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+


Я успешно использовал ваше предложение. Единственное изменение было в команде import: import pymysql Был при типе.
Хорхе

работал для меня на windows10, python 3.6, виртуальной среде
Yikang Luo

1
Люблю этот хак. Хотя мне удалось заставить его работать без него, все же пришлось включить бинарный файл whql.
Измаил

Должен быть правильный ответ.
Джосси Кальдерон



8

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

sudo apt-get install -y python-dev libmysqlclient-dev && sudo pip install mysqlclient

6

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

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

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

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

pip install mysqlclient==1.3.4

4
  • Перейдите в каталог вашего проекта с cd.
  • источник / bin / activ (активируйте свою среду, если не ранее).
  • Запустите команду easy_install MySQL-python

1
Не работаетModuleNotFoundError: No module named 'ConfigParser'
TomSawyer

4
pip install --user mysqlclient 

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

Python: 3.6, Ubuntu: 16.04, conda 4.6.8


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 делает свое дело


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


успех для virtualenv / python2.7
nguyên


1

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

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

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


0

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

easy_install mysql-python

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


0

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

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

apt-get install holland python3-mysqldb


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

0

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

sudo apt-get install libmysqlclient-dev
sudo apt-get install libssl-dev
pip install mysqlclient

0

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

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

и, наконец,

pip install mysqlclient
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.