Немає модуля з іменем 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
Itachi Sama

8
Для Python3.6 sudo apt-get install libmysqlclient-devі pip3 install mysqlclientпрацював на мене
Umair

Відповіді:


638

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

  1. easy_install mysql-python (mix os)
  2. pip встановити mysql-python (mix os / python 2)
  3. pip install mysqlclient (mix os / python 3)
  4. apt-get install python-mysqldb (Linux Ubuntu, ...)
  5. CD / usr / порти / бази даних / py-MySQLdb && роблять установку чистою (FreeBSD)
  6. ви встановите MySQL-python (Linux Fedora, CentOS ...)

Для Windows див. Цю відповідь: Встановити mysql-python (Windows)


1
Мені довелося оновити свою версію setuptools, щоб вона відповідала моїй оновленій версії python на Mac OS, перш ніж я змогла це працювати.
Джонатан Адельсон

4
а як щодо встановлення на virtualenv з python 3 на ньому? Я використав: pip встановити mysql-python лише для отримання: ImportError: Немає модуля з іменем ConfigParser
Iliyan Bobev

9
У Python 3 ConfigParser було перейменовано на configparser для відповідності PEP 8. Схоже, пакет, який ви встановлюєте, не підтримує Python 3. MySQL-python наразі не підтримує Python 3.
derevo

2
Я отримую цю помилку під час використання 1 або 2 в OSX Yosemite:EnvironmentError: mysql_config not found
Mona Jalal

1
FYI - я перебуваю на ubuntu 18 та використовую python3.7. Зробивши "pip install mysqlclient", мені потрібно було зробити "sudo apt-get install libmysqlclient-dev" для успішної установки.
Рашмі Сінгх

143

... і пам’ятайте, що для python3.x немає MySQLdb

(Я знаю, що питання стосується python2.x, але Google оцінює цю публікацію досить високо)


EDIT: Як зазначено в коментарях, є вилка MySQLdb, яка додає підтримку Python 3: github.com/PyMySQL/mysqlclient-python


Urghhgwaarrbl ... в моїй програмі Django надійде сподівання на використання python3
Don Cheadle

6
На щастя, існує вибір альтернатив, багато з яких використовують один і той же API: Python 3 та MySQL
Anthony Geoghegan

4
mysqlclient - це вилка MySQLdb, яка добре працює з Python 3.
ostrokach

@JanekOlszak Я цього не знав - займав лише близько дня багато проклинань та стукань по клавіатурі - до того, як прочитав це і перемкнувся на 2.7. І вгадайте, що, все працює хунк-дорі ~
3kstc

Моя подорож, це -> це -> це . І тоді я нарешті змогла її успішно встановити.
дака

68

якщо ваша версія python 3.5, зробіть це pip install mysqlclient, інші речі не працювали для мене


Я не знаю, чому ця відповідь була mysqlclientзаперечена , але це вилка проекту MySQLdb, і я можу підтвердити, що це працювало для мене в Windows 10
Hamman Samuel

1
Працював для мене на арці 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 та runpython 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

а потім додайте ці два рядки до свого Project / Project / init .py

import pymysql
pymysql.install_as_MySQLdb()

Працює на WIN та python 3.3+


Я успішно використав вашу пропозицію. Зміни були лише в команді import: import pymysql Був тип.
Хорхе

працював для мене на windows10, python 3.6, віртуальному середовищі
Yikang Luo

1
Любіть цей хак. Хоча мені вдалося змусити його працювати без нього, але доводилося включати бінарний файл whql.
Ізмаїл

Повинна бути правильна відповідь.
Джоссі Кальдерон


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 mysqlclient виникає помилка, і ви використовуєте Ubuntu, спробуйте:

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

6

Я зустрічався з тією ж ситуацією під вікнами і шукав рішення.

Побачивши цю публікацію Встановіть mysql-python (Windows) .

Він вказує, що встановити таке середовище з протоколом важко, потребує багатьох інших залежностей.

Але я нарешті знаю, що якщо ми використовуємо mysqlclientверсію до версії 1.3.4, вона більше не потребує цих вимог, тому спробуйте:

pip install mysqlclient==1.3.4

4
  • Перейдіть до каталогу проектів за допомогою cd.
  • source / bin / activate (активізуйте навколишнє середовище, якщо не раніше).
  • Виконайте команду 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

Завдяки derevo, але я думаю, що є ще один хороший спосіб зробити це:

  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

моє оточення 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

всі інші "встановлення файлів ..." не вдалося із помилками залежності


0

Ніщо з вищезгаданого не працювало для мене на свіжому встановленні Ubuntu 18.04 через docker-зображення.

Для мене це вирішили:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.