Jak zainstalować moduł Python MySQLdb przy użyciu pip?

310

Jak mogę zainstalować moduł MySQLdb dla Pythona za pomocą pip?

Marian
źródło
11
Jeśli chcesz używać tego z Python3 (np. Z najnowszą wersją Django), potrzebujesz mysqlclient, ponieważ MysqlDB nie obsługuje Python3. Zobacz to pytanie
TD Smith,
Korzystam z mysqlclient z Python 2.7 i MariaDB bez żadnych problemów.
Dave Everitt

Odpowiedzi:

522

Łatwo to zrobić, ale trudno zapamiętać poprawną pisownię:

pip install mysqlclient

Jeśli potrzebujesz wersji 1.2.x (tylko starszego języka Python), użyj pip install MySQL-python

Uwaga: Niektóre zależności mogą być konieczne podczas uruchamiania powyższego polecenia. Kilka wskazówek, jak zainstalować je na różnych platformach:

Ubuntu 14, Ubuntu 16, Debian 8.6 (jessie)

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

Fedora 24:

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

System operacyjny Mac

brew install mysql-connector-c

jeśli to się nie powiedzie, spróbuj

brew install mysql
Marian
źródło
26
Nie musisz zapamiętywać całej nazwy, możesz użyć pip search mysqli znaleźć potrzebną w wynikach.
WKPlus,
12
@WKPlus: racja ... ale znalazłem pip search mysqldbi nie znalazłem. Daję +1 tej odpowiedzi.
Dan H
7
@WKPlus faktycznie jest to naprawdę trudny problem ze znalezieniem właściwego wyboru po wyszukiwaniu pip mysql
kommradHomer
9
Muszę to wyszukiwać za każdym razem, więc cholernie denerwujące
senny
3
@DavidOkwii Jeśli nie jesteś w wirtualnej wersji, sudo jest wymagane. To mógł być twój problem.
Marian
138

Począwszy od nowego systemu Ubuntu 14.04.2, potrzebne były następujące dwa polecenia:

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

Samo wykonanie „instalacji pip” nie działało.

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

Ray Kiddy
źródło
2
ten działał, z jakiegoś powodu prosta instalacja pip nie działa czysto na ubuntu
Dap
W Ubuntu 14.04 pojawi się błąd „podniesienie środowiskaError („ Nie znaleziono% s ”% (mysql_config.path,)), a pierwsze polecenie cmd rozwiązało problem, dzięki zaoszczędź mi trochę czasu
zhihong
Naprawić error: command 'x86_64-linux-gnu-gcc' failed with exit status 1użyciesudo apt-get install build-essential
FelikZ
Zastanawiam się, dlaczego to jest potrzebne. Jedna rzecz przychodzi mi do głowy. Przetestowałem to tylko instalując, a nie budując. Czy zbudowałeś coś, co zainstalowałeś, a nie tylko?
Ray Kiddy
Należy oczywiście zaakceptować odpowiedź na Ubuntu.
Roon13
23

Pierwszy

pip install pymysql

Następnie umieść poniższy kod w __init__.py( projectname/__init__.py)

import pymysql
pymysql.install_as_MySQLdb()

Moje środowisko to (python3.5, django1.10) i to rozwiązanie działa dla mnie!

Mam nadzieję że to pomoże!!

放 課後
źródło
3
Woow, odczekałem ponad 5 godzin, próbując to naprawić bez powodzenia. Jest to jedyne rozwiązanie, które działało na Ubuntu 16.04 / python 3.5 / Django 1.11. Dzięki za udostępnienie tego.
Paullo,
to nie działa dla mnie, moim środowiskiem jest Python 3.7 i django 2.2. Proszę pomóż mi.
Rajen K Bhagat
To powinno tam być. Szukałem rozwiązania od wielu godzin. Mam virtualenv z python 2.7 z systemem django 1.6. Nie mogłem zainstalować MySQL-python ani mysqlclient. Bez względu na to, co próbowałem, otrzymywałem „błąd krytyczny: mysql.h”. Ten załatwił sprawę.
rolandsaven,
22

Miałem problemy z instalacją 64-bitowej wersji MySQLdb w systemie Windows za pośrednictwem Pip (źródła problemów z kompilacją) [wersja 32-bitowa zainstalowana OK]. Udało się zainstalować skompilowaną MySQLdb z pliku .whl dostępnego na stronie http://www.lfd.uci.edu/~gohlke/pythonlibs/

Plik .whl można następnie zainstalować za pomocą pip jako dokument w https://pip.pypa.io/en/latest/user_guide/#installing-from-wheels

Na przykład, jeśli zapiszesz w C:/, możesz zainstalować za pośrednictwem

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

Dalsze działania: jeśli masz 64-bitową wersję Pythona, to chcesz zainstalować 64-bitową wersję MySQLdb AMD z linku powyżej [tj. Nawet jeśli masz procesor Intel]. Jeśli zamiast tego spróbujesz zainstalować wersję 32-bitową, myślę, że pojawia się nieobsługiwany błąd koła w komentarzach poniżej.

Kyrenia
źródło
Całkowity błąd. Nieobsługiwane koło
M Hornbacher
3
Potrzebowałem klienta MySQL. pip install mysqlclient-1.3.7-cp27-none-win_amd64.whldziała świetnie.
arsenik
2
Poszedłem do http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python, aby pobrać whlplik (dl 64-bitowy, aby pasował do mojej 64-bitowej instalacji Python). Zapisałem plik do c:/katalogu i uruchomiłem. pip install c:/MySQL_python-1.2.5-cp27-none-win_amd64.whlZainstalował się w kilka sekund i był gotowy do pracy. Zbyt łatwe!
Curtisp
Pracowałem również dla mnie, ponieważ instalacja PIP według nazwy kończyła się niepowodzeniem.
Artem Russakovskii
19

dobrze, to zadziałało dla mnie:

pip install mysqlclient

dotyczy to Pythona 3.x

Kinsley Kajiva
źródło
3
To pierwsze rozwiązanie, które zadziałało dla mnie dla Pythona 3.5 / django 1.11
Braden Holt
1
Możesz mieć problemy z brakującym plikiem mysql_config. Zobacz stackoverflow.com/questions/7475223/…
zwep
7

Wypróbowałem wszystkie opcje, ale nie byłem w stanie sprawić, by działała na platformie Redhat. Wykonałem następujące czynności, aby to działało: -

yum install MySQL-python -y

Po zainstalowaniu pakietu był w stanie zaimportować moduł do interpretera w następujący sposób: -

>>> import MySQLdb
>>> 
Ashwin
źródło
Pytanie było konkretnie wspomniane pip. Jakiej dystrybucji używasz? Na Fedorze 24 to działa zainstalować moduł poprzez pip: sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc,sudo pip install MySQL-python
Marian
Rozumiem, że pytanie jest za pośrednictwem pipa, ale osobiście nie byłem w stanie rozwiązać go za pomocą pipa. Dlatego właśnie podzieliłem się moim obejściem, które rozwiązało problem. Używam centos 6.8. lista pip nie pokazuje niczego związanego z mysql, a kiedy wykonuję „pip install MySQL-python”, zwrócił błąd. Teraz co ciekawe, zorientowałem się, że kiedy instalujemy przez yum, to: „mniam zainstalować MySQL-python” jestem w stanie zaimportować MySQLdb. Raz też zrobiłem z instalacją yum, byłem w stanie zainstalować przez pip bez żadnych błędów.
Ashwin
6

Przejdź do pycharm, a następnie przejdź do ustawienia domyślnego -> pip (podwójne kliknięcie) - pymsqldb ..--> zainstaluj - po instalacji użyj w takim programie jak ten

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()
Java By Kiran
źródło
3

Jeśli używasz Raspberry Pi [Raspbian OS]

Najpierw trzeba zainstalować polecenie pip

apt-get install python-pip

Więc po prostu zainstaluj Sekwencyjnie

apt-get install python-dev libmysqlclient-dev

apt-get install python-pip

pip install MySQL-python
Tanakorn Lueangkajonvit
źródło
Malina nie jest wymieniona w pytaniu
Héctor Valverde Pareja
3

Jeśli nie możesz zainstalować mysqlclient , możesz także zainstalować pymysql :

pip install pymysql

Działa to tak samo jak MySqldb . Następnie użyj pymysql zamiast MySQLdb

Aniket Babhulkar
źródło
To powinna być odpowiedź.
JayJay123,
2

Miałem też ten sam problem: jeśli korzystasz z systemu Windows, wykonaj te czynności. Idź do: 1.Mój komputer 2. Właściwości systemu 3. Zaawansowane ustawienia systemu 4. W zakładce „Zaawansowane” kliknij przycisk z napisem „Zmienne środowiskowe” 5. Następnie w Zmiennych systemowych musisz dodać / zmienić następujące zmienne: PYTHONPATH i ścieżka. Oto pasta moich zmiennych: ścieżka python:

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

ścieżka:

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

Zobacz ten link w celach informacyjnych

d-koder
źródło
1

Powyższa odpowiedź jest świetna, ale mogą wystąpić pewne problemy, gdy używamy pipa do instalacji MySQL-python w systemie Windows

na przykład potrzebuje niektórych plików powiązanych z Visual Stdio . rozwiązaniem jest instalacja VS2008 lub 2010 …… Oczywiście, to kosztuje zbyt wiele.

Innym sposobem jest odpowiedź @ bob90937. Jestem tutaj, aby zrobić coś do dodania.

dzięki http://www.lfd.uci.edu/~gohlke/pythonlibs możesz pobrać wiele plików binarnych Windows wielu naukowych rozszerzeń open source do oficjalnej dystrybucji języka programowania Python.

Wracając do tematu, możemy wybrać MySQL-python (py2) lub Mysqlclient (py3) i użyć instalacji pip do instalacji. daje nam wielką wygodę!

Ogromny
źródło
1

W przypadku Python3 musiałem to zrobić:

python3 -m pip install MySQL
Frank Harb
źródło
1

na RHEL 7:

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

sudo /bin/pip2 install MySQL-python

przewodowy00
źródło
1

Jeśli w systemie jest zainstalowany system Windows, wpisz następujące polecenie na cmd:

pip install mysql-connector

jeśli powyższe polecenie nie działa, spróbuj użyć:

pip install mysql-connector-python

Teraz, jeśli powyższe polecenia nie wykonają pracy, spróbuj użyć:

pip install mysql-connector-python-rf

To jest to, że teraz dobrze jest iść.

kesari007
źródło
1

Wiele z podanych tutaj odpowiedzi jest dość mylących, więc postaram się to po prostu wyjaśnić. Pomogło mi to zainstalować

pip install pymysql

a następnie użyj następującego polecenia w pliku python

import pymysql as MySQLdb

W ten sposób możesz bez problemu korzystać z MySQLdb.

DovaX
źródło
0

Jeśli pip3 nie działa, możesz spróbować:

sudo apt install python3-mysqldb
Marc Gottlieb
źródło
Niezbyt dobra odpowiedź. Zakładasz, że wersja Python to 3, a system operacyjny to Debian / Ubuntu, ale nie wiesz o tym. Poczekaj, aż autor doda więcej szczegółów.
dr
0

Moje środowisko to:

  • 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 zainstaluj mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl

pracuje dla mnie.

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()
Павел П
źródło
0

właściwie, odpowiedź @Nick T nie działa dla mnie, próbuję apt-get install python-mysqldbpracować dla siebie

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
>>> 
vickey wu
źródło