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

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

pip install mysql-python или pip install mysqlclient
Cœur 19.02.2017 14:21

Мне пришлось установить sudo apt-get install libmysqlclient-dev, чтобы он заработал.

b00r00x0 18.06.2018 21:57

pip install mysqlclient работал на Windows x64 10, вы качаете Cœur

Itachi Sama 27.12.2018 20:06

Для Python3.6 у меня работали sudo apt-get install libmysqlclient-dev и pip3 install mysqlclient

Umair Ayub 03.03.2019 12:37
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
441
4
690 660
27

Ответы 27

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

При попытке установить MySQL-python-1.2.1 я получаю сообщение ImportError: нет модуля с именем setuptools При попытке установить setuptools получаю zlib недоступен, разве он не должен быть связан с python?

Pierre de LESPINAY 02.05.2011 13:30

после загрузки модуля вам необходимо отредактировать файл site.cfg, указав правильный путь для mysql_config и запустить python setup.py install

ntanase 09.03.2014 03:44

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

Тогда почему вы сказали: «Если вы работаете в Vista», если она будет работать не только в Vista? Это вводит в заблуждение и сбивает с толку.

Anthony 22.12.2013 18:41

Энтони: Мне показалось забавным, что в получившем наибольшее количество голосов комментарии были представлены инструкции для Linux, FreeBSD и OSX, но не для Vista, как указано на плакате.

Daniel Lopez 26.12.2013 00:04

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

  1. easy_install mysql-python (микс ОС)
  2. pip установить mysql-python (смесь OS / Python 2)
  3. pip установить mysqlclient (смесь OS / Python 3)
  4. apt-get установить python-mysqldb (Linux Ubuntu, ...)
  5. cd / usr / ports / databases / py-MySQLdb && сделать установку чистой (FreeBSD)
  6. yum установить MySQL-python (Linux Fedora, CentOS ...)

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

Мне пришлось обновить мою версию setuptools, чтобы она соответствовала моей обновленной версии python в Mac OS, прежде чем я смог заставить это работать.

Jonathan Adelson 22.12.2011 03:57

У меня было несколько проблем с easy_install, думаю, ActivePython более надежен, чем easy_install.

Afshin Mehrabani 04.10.2012 15:36

а как насчет установки на virtualenv с python 3 на нем? Я использовал: pip install mysql-python только для получения: ImportError: нет модуля с именем ConfigParser

Iliyan Bobev 27.08.2013 14:48

В Python 3 ConfigParser был переименован в configparser для соответствия PEP 8. Похоже, что устанавливаемый вами пакет не поддерживает Python 3. MySQL-python в настоящее время не поддерживает Python 3.

derevo 28.08.2013 11:51

См. Этот вопрос для некоторых параметров в Python3: stackoverflow.com/questions/4960048/python-3-and-mysql/…

Symmetric 07.01.2016 03:23

Я получаю эту ошибку при использовании 1 или 2 в OSX Yosemite: EnvironmentError: mysql_config not found

Mona Jalal 30.06.2016 23:38

easy_install работал у меня на macOS High Sierra (v10.13.2) с использованием Python v2.7.14

Lee 30.01.2018 16:06

К вашему сведению - я использую ubuntu 18 и использую python3.7. После выполнения «pip install mysqlclient» мне нужно было выполнить «sudo apt-get install libmysqlclient-dev» для успешной установки.

Rashmi Singh 19.11.2019 12:09

Если вы используете Python3 в Ubuntu, всегда рекомендуется обновлять ваши репозитории перед установкой нового пакета, поэтому вы запускаете «sudo apt-get update», а затем устанавливаете пакет, выполнив «sudo apt-get install python3-mysqldb» и тебе хорошо идти.

john 04.01.2021 11:06

Ubuntu:

sudo apt-get install python-mysqldb

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

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

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

Вроде требуется платная подписка Can't install mysql-python-1.2.3: requires Business Edition subscription

Jeremy S. 21.11.2012 17:17

Я так не думаю. Я помню, что установил это без проблем.

Afshin Mehrabani 21.11.2012 20:19

Как вы думаете, почему pypm более мощный и надежный, чем easy_install? какие-нибудь аргументы в поддержку этого? какие-нибудь статьи / сообщения в блоге?

Sandeep Raju Prabhakar 29.04.2013 14:25

Я думаю, это была бы статья / сообщение в блоге, подтверждающее это: P Я имею в виду, да ладно, вы поддерживаете такой комментарий с типичными техническими аргументами, а не с кем-то, кто утверждает то же самое, но также может не иметь аргументов. Впрочем, аргументы было бы неплохо;)

Herbert 02.12.2013 15:47

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

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


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

Ургхгвааррбл ... я надеюсь использовать python3 в моем приложении Django

Don Cheadle 02.02.2015 19:45

К счастью, есть несколько альтернатив, многие из которых используют один и тот же API: Python 3 и MySQL

Anthony Geoghegan 24.03.2015 13:07
mysqlclient - это форк MySQLdb, который хорошо работает с Python 3.
ostrokach 05.02.2016 02:57

@JanekOlszak Я этого не знал - мне потребовалось около дня множества проклятий и ударов по клавиатуре - пока я не прочитал это и не переключился на 2.7. И знаете что, все работает, здоровяк-дори ~

3kstc 11.08.2016 04:14

Мое путешествие, это -> это -> это. И тогда я наконец смог его успешно установить.

daka 23.02.2019 18:00
  • Перейдите в каталог вашего проекта с помощью cd.
  • source / bin / activate (активируйте ваш env., если не ранее).
  • Запускаем команду easy_install MySQL-python

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

TomSawyer 17.03.2019 10:42

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

pip install MySQL-python

Как это применимо конкретно к виртуальным средам?

Tim 30.12.2016 20:32

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

В CMD

pip install wheel
pip install pymysql

в settings.py

import pymysql
pymysql.install_as_MySQLdb()

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

"pip3 install mysqlclient" решает проблему для python3.6 /

showmyroutes 11.02.2017 10:49

Я не могу проголосовать за это достаточно! Единственное решение, которое работает на Databricks ..

Foxan Ng 22.11.2018 12:09

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

easy_install mysql-python

мой env - unbuntu 14.04

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

nguyên 24.05.2017 09:48

если ваша версия python - 3.5, сделайте pip install mysqlclient, другие вещи у меня не сработали

Я не знаю, почему этот ответ был отклонен, но mysqlclient - это форк проекта MySQLdb, и я могу подтвердить, что это сработало для меня в Windows 10.

Hamman Samuel 20.07.2016 11:54

Работал у меня на Arch Linux

Luke Dupin 07.01.2017 21:43

Работал на Ubuntu 16.10, Python 3.5.2+

tivadj 16.07.2017 16:51

Работал на Ubuntu 14.04 Python 3.4.3

gpk27 23.10.2017 09:32

Работал на macOS, Python 3.6.0

Miguel Mota 28.10.2017 01:53

На экземпляре ec2 под управлением Amazon Linux 1 я получил эту ошибку при запуске команды Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-yozvcc7j/mysqlclient/ и OSError: mysql_config not found. Хотя я использовал pip-3.6 install mysqlclient, и похоже, что это не поддерживается для python 3.6, так что, возможно, это проблема.

Kyle Bridenstine 15.08.2018 19:05

Работал на Ubuntu 18.04 Python 3.6.7.

Tri 27.01.2019 09:37

попробуйте «sudo apt-get install libmysqlclient-dev», а затем попробуйте.

Rashmi Singh 19.11.2019 12:09

Работал над Raspbian, Python 3.7.

pa1983 13.07.2020 13:02

Работал на python 3.7.9

Gokul nath 25.01.2021 14:35

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

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

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

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

pip install mysqlclient==1.3.4

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

brew install mysql-connector-c 
pip install MySQL-python
pip install PyMySQL

а затем добавьте эти две строки в свой Project / Project / в этом.py

import pymysql
pymysql.install_as_MySQLdb()

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

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

Jorge 10.09.2017 19:41

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

Yikang Luo 17.08.2018 19:46

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

Ishmael 11.10.2018 17:57

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

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

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

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

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

этот работал у меня на python 3.6.11 на ubuntu 18.04 на aws

Stevko 03.08.2020 23:34

для Windows:

pip install mysqlclient pymysql

тогда:

import 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) решил мою проблему.

Rick Sarvas 15.01.2019 23:13

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

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

pip3 install mysql-connector 

Пример кода подключения к базе данных Python:

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

Выход:

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

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

pip install --user mysqlclient 

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

Python: 3.6, Ubuntu: 16.04, conda 4.6.8

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

easy_install mysql-python

все остальные 'pip install ...' завершились неудачно с ошибками зависимости

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

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

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

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

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

apt-get install holland python3-mysqldb

На моем 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

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

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

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

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

а потом наконец

pip install mysqlclient

Всем, кто заходит на эту страницу, пытаясь найти решение для sqlalchemy, все, что вам нужно сделать, это:

pip install PyMySQL

И настройте строку подключения для использования PyMySQL, от mysql:// до mysql+pymysql://.

Это также работает на компьютерах Mac M1. Клиент mysql-python не работает (пока) по состоянию на 31 января 2021 г.

JasonD 01.02.2021 04:48

Другие вопросы по теме