Как установить модуль Python MySQLdb с помощью pip?


310

Как я могу установить модуль MySQLdb для Python, используя pip?


11
Если вы хотите использовать это с Python3 (например, с новейшей версией Django), вам понадобится mysqlclient, так как MysqlDB не поддерживает python3. Смотрите этот вопрос
TD Smith

Я использую mysqlclient с Python 2.7 и MariaDB без проблем до сих пор.
Дейв Эверитт

Ответы:


522

Это легко сделать, но трудно запомнить правильное написание:

pip install mysqlclient

Если вам нужны версии 1.2.x (только устаревший Python), используйте pip install MySQL-python

Примечание: некоторые зависимости, возможно, должны быть на месте при выполнении вышеуказанной команды. Некоторые советы о том, как установить их на разных платформах:

Ubuntu 14, Ubuntu 16, Debian 8.6 (Джесси)

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

Fedora 24:

sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc

Mac OS

brew install mysql-connector-c

если не получится, попробуйте

brew install mysql

26
Вам не нужно запоминать полное имя, вы можете использовать pip search mysqlи найти то, что вам нужно в выводе.
WKPlus

12
@WKPlus: верно ... но я pip search mysqldbнашел и не нашел его. Таким образом, я +1 этот ответ.
Дэн Х

7
@WKPlus на самом деле довольно сложно найти правильный выбор после поиска в
пипсах

9
Я должен гуглить это каждый раз, так чертовски безумно
сонный

3
@DavidOkwii Когда вы не внутри virtualenv, sudo требуется. Это могло быть вашей проблемой.
Мариан

138

Начиная с новой системы Ubuntu 14.04.2, эти две команды были необходимы:

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

Само по себе «pip install» не сработало.

С http://codeinthehole.com/writing/how-to-set-up-mysql-for-python-on-ubuntu/


2
этот работал, по какой-то причине простая установка pip не работает в Ubuntu без ошибок
Dap

В Ubuntu 14.04 будет выдано сообщение об ошибке «поднять EnvironmentError («% s не найден »% (mysql_config.path,)» », и первый cmd
устранил

Чтобы исправить error: command 'x86_64-linux-gnu-gcc' failed with exit status 1использованиеsudo apt-get install build-essential
FelikZ

Интересно, зачем это нужно? Одна вещь происходит со мной. Я проверил это путем установки только, а не сборки. Вы собрали что-то из того, что установили, а не просто установили?
Рэй Кидди

Это должен быть принят ответ, конечно, для Ubuntu.
Roon13

23

Первый

pip install pymysql

Затем поместите код ниже в __init__.py( projectname/__init__.py)

import pymysql
pymysql.install_as_MySQLdb()

Моя среда (python3.5, django1.10), и это решение работает для меня!

Надеюсь это поможет!!


3
Ух ты, я потратил 5 часов, пытаясь исправить это безуспешно. Это единственное решение, которое работало на Ubuntu 16.04 / python 3.5 / Django 1.11. Спасибо, что поделились этим.
Paullo

это не работает для меня, моя среда Python 3.7 и Django 2.2. Пожалуйста, помогите мне.
Раджен К Бхагат

Это должно быть там. Я искал решение в течение нескольких часов. У меня есть virtualenv с python 2.7 под управлением django 1.6. Я не смог установить ни MySQL-python, ни mysqlclient. Что бы я ни пытался, я получал «фатальную ошибку: mysql.h». Этот сделал свое дело.
Роландсавен

22

У меня были проблемы с установкой 64-битной версии MySQLdb в Windows через Pip (проблема с компиляцией исходников) [32-битная версия установлена ​​нормально]. Удалось установить скомпилированный MySQLdb из файла .whl, доступного по адресу http://www.lfd.uci.edu/~gohlke/pythonlibs/

Затем .whl-файл может быть установлен через pip как документ в https://pip.pypa.io/en/latest/user_guide/#install-from-wheels.

Например, если вы сохраните в, C:/вы можете установить через

pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whl

Последующие действия: если у вас установлена ​​64-битная версия Python, вы хотите установить 64-битную версию AMD MySQLdb для AMD по ссылке выше [т.е. даже если у вас процессор Intel]. Если вместо этого вы попытаетесь установить 32-разрядную версию, я думаю, что вы получите ошибку неподдерживаемого колеса в комментариях ниже.


Полный провал. Неподдерживаемый руль
M Hornbacher

3
Мне нужен был клиент MySQL. pip install mysqlclient-1.3.7-cp27-none-win_amd64.whlработает отлично.
арсеник

2
Пошел в http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python для загрузки whlфайла (я установил 64-битную версию, чтобы соответствовать моей 64-битной установке Python). Сохраненный файл в c:/директорию и запустил. pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whlОн был установлен за считанные секунды и был готов к работе. Слишком легко!
Кертисп

Сработало и у меня, так как установка pip по имени не удалась.
Артем Руссаковский


7

Я испробовал все варианты, но не смог заставить его работать на платформе Redhat. Я сделал следующее, чтобы это работало:

yum install MySQL-python -y

После установки пакета удалось импортировать модуль следующим образом в интерпретаторе:

>>> import MySQLdb
>>> 

Вопрос был конкретно упомянут pip. Какой дистрибутив вы используете? На Fedora 24, это работает , чтобы установить модуль через пип: sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc,sudo pip install MySQL-python
Marian

Я понимаю, что вопрос через pip, но лично я не смог решить его с помощью pip. Поэтому я просто поделился своим решением, которое исправило проблему для меня. Я использую Centos 6,8. Список пипов не показывает ничего, связанного с mysql, и когда я делаю «pip install MySQL-python», он выдает ошибку. Интересно, что я выяснил, что после установки через yum i: e "yum install MySQL-python" я могу импортировать MySQLdb. Также, как только я закончил установку yum, я смог установить ее через pip без каких-либо ошибок.
Эшвин

6

Перейти к pycharm, затем перейти к настройкам по умолчанию -> pip (двойной щелчок) - pymsqldb ..--> установить - после установки использовать в такой программе, как эта

import pymysql as MySQLdb

# Open database connection
db = MySQLdb.connect("localhost","root","root","test" )

# prepare a cursor object using cursor() method
cursor = db.cursor()

# execute SQL query using execute() method.
cursor.execute("show tables")

# Fetch a single row using fetchone() method.
data = cursor.fetchall()
print (data)

# disconnect from server
db.close()

3

Если вы используете Raspberry Pi [Raspbian OS]

Сначала нужно установить команду pip

apt-get install python-pip

Так что просто установите Sequently

apt-get install python-dev libmysqlclient-dev

apt-get install python-pip

pip install MySQL-python

Малина не упоминается в вопросе
Эктор Вальверде Пареджа


3

Если вы не можете установить mysqlclient, вы также можете установить pymysql :

pip install pymysql

Это работает так же, как MySqldb . После этого используйте pymysql вместо MySQLdb


Это должно быть ответом.
JayJay123

2

У меня тоже была такая же проблема. Выполните эти шаги, если вы используете Windows. Перейдите: 1. Мой компьютер 2. Свойства системы 3. Дополнительные параметры системы 4. На вкладке «Дополнительно» нажмите кнопку с надписью «Переменные среды» 5. Затем в разделе «Переменные системы» необходимо добавить / изменить следующие переменные: PYTHONPATH и путь. Вот пример того, как выглядят мои переменные: путь к Python:

C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts

дорожка:

C:\Program Files\MySQL\MySQL Utilities 1.3.5\;C:\Python27;C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\Python27\Scripts

Смотрите эту ссылку для справки


1

Приведенный выше ответ хорош, но могут возникнуть некоторые проблемы, когда мы используем pip для установки MySQL-python в Windows

например, ему нужны некоторые файлы, связанные с Visual Stdio. Одним из решений является установка VS2008 или 2010 …… Очевидно, это слишком дорого.

Другой способ - это ответ @ bob90937. Я здесь, чтобы сделать что-то, чтобы добавить.

с помощью http://www.lfd.uci.edu/~gohlke/pythonlibs вы можете загрузить множество бинарных файлов Windows для многих научных пакетов расширений с открытым исходным кодом для официального распространения языка программирования Python на CPython.

Вернуться к теме, мы можем выбрать MySQL-python (py2) или Mysqlclient (py3) и использовать pip install для установки. это дает нам большое удобство!




1

на 7-м РЕЛЕ:

sudo yum install yum-utils mariadb-devel python-pip python-devel gcc

sudo /bin/pip2 install MySQL-python


1

Если в вашей системе установлена ​​Windows, введите в cmd следующую команду:

pip install mysql-connector

Если приведенная выше команда не работает, попробуйте использовать:

pip install mysql-connector-python

Теперь, если вышеприведенные команды не выполняют работу, попробуйте использовать:

pip install mysql-connector-python-rf

Вот и все, теперь тебе пора.


1

Многие из приведенных здесь ответов довольно запутанные, поэтому я постараюсь выразиться проще. Это помогло мне установить это

pip install pymysql

а затем используйте следующую команду в файле Python

import pymysql as MySQLdb

Таким образом, вы можете использовать MySQLdb без проблем.


0

Если pip3 не работает, вы можете попробовать:

sudo apt install python3-mysqldb

Не очень хороший ответ. Вы предполагаете, что версия Python - 3, а ОС - Debian / Ubuntu, но вы этого не знаете. Пожалуйста, подождите, пока автор не добавит больше деталей.
кандидат

0

Моя среда:

  • Windows 10 Pro,
  • Python 3.7 (python-3.7.1-amd64.exe),
  • MySQL 8.0 (mysql-installer-web-community-8.0.13.0.msi)

pip install mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl

работает для меня.

import MySQLdb, sys


# --------------------------------------------------
# Connect to MySQL
# --------------------------------------------------
try:
    db = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="database", charset='cp1251')
except MySQLdb.Error as e:
    print ("Error %d: %s" % (e.args[0], e.args[1]))
    sys.exit()

# Creating cursor 
cursor = db.cursor()

0

на самом деле, следуйте ответу @Nick T не работает для меня, я пытаюсь apt-get install python-mysqldbработать для меня

root@2fb0da64a933:/home/test_scrapy# apt-get install python-mysqldb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libmariadbclient18 mysql-common
Suggested packages:
  default-mysql-server | virtual-mysql-server python-egenix-mxdatetime python-mysqldb-dbg
The following NEW packages will be installed:
  libmariadbclient18 mysql-common python-mysqldb
0 upgraded, 3 newly installed, 0 to remove and 29 not upgraded.
Need to get 843 kB of archives.
After this operation, 4611 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian stretch/main amd64 mysql-common all 5.8+1.0.2 [5608 B]
Get:2 http://deb.debian.org/debian stretch/main amd64 libmariadbclient18 amd64 10.1.38-0+deb9u1 [785 kB]
Get:3 http://deb.debian.org/debian stretch/main amd64 python-mysqldb amd64 1.3.7-1.1 [52.1 kB]                    
Fetched 843 kB in 23s (35.8 kB/s)                                                                                 
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package mysql-common.
(Reading database ... 13223 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.8+1.0.2_all.deb ...
Unpacking mysql-common (5.8+1.0.2) ...
Selecting previously unselected package libmariadbclient18:amd64.
Preparing to unpack .../libmariadbclient18_10.1.38-0+deb9u1_amd64.deb ...
Unpacking libmariadbclient18:amd64 (10.1.38-0+deb9u1) ...
Selecting previously unselected package python-mysqldb.
Preparing to unpack .../python-mysqldb_1.3.7-1.1_amd64.deb ...
Unpacking python-mysqldb (1.3.7-1.1) ...
Setting up mysql-common (5.8+1.0.2) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Setting up libmariadbclient18:amd64 (10.1.38-0+deb9u1) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Setting up python-mysqldb (1.3.7-1.1) ...
root@2fb0da64a933:/home/test_scrapy# python 
Python 2.7.13 (default, Nov 24 2017, 17:33:09) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.