Żaden moduł o nazwie MySQLdb


400

Używam Pythona w wersji 2.5.4 i instaluję MySQL w wersji 5.0 i Django. Django działa dobrze z Pythonem, ale nie MySQL. Używam go w systemie Windows Vista.


43
pip install mysql-pythonlubpip install mysqlclient
Cœur

13
Musiałem zainstalować, sudo apt-get install libmysqlclient-devaby działało.
b00r00x0

pip install mysqlclient pracował na Windowsie x64 10, ty rock Cœur
Itachi Sama

8
Dla Python3.6 sudo apt-get install libmysqlclient-devi pip3 install mysqlclientpracował dla mnie
Umair

Odpowiedzi:


638

Musisz użyć jednego z następujących poleceń. Który zależy od posiadanego i używanego systemu operacyjnego i oprogramowania.

  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 install python-mysqldb (Linux Ubuntu, ...)
  5. cd / usr / porty / bazy danych / py-MySQLdb && sprawiają, że instalacja jest czysta (FreeBSD)
  6. mniam zainstalować MySQL-python (Linux Fedora, CentOS ...)

W przypadku systemu Windows zapoznaj się z tą odpowiedzią: Zainstaluj mysql-python (Windows)


1
Musiałem zaktualizować moją wersję setuptools, aby pasowała do mojej zaktualizowanej wersji Pythona w systemie Mac OS, zanim mogłem to uruchomić.
Jonathan Adelson

4
a co powiesz na instalację na virtualenv z Pythonem 3? Użyłem: pip zainstaluj mysql-python tylko, aby uzyskać: ImportError: Brak modułu o nazwie ConfigParser
Iliyan Bobev

9
W Pythonie 3 zmieniono nazwę ConfigParser na configparser dla zgodności z PEP 8. Wygląda na to, że pakiet, który instalujesz, nie obsługuje Python 3. Python MySQL nie obsługuje obecnie Python 3.
derevo 28.08.13

2
Ten błąd pojawia się, gdy używam 1 lub 2 w OSX Yosemite:EnvironmentError: mysql_config not found
Mona Jalal

1
FYI - Jestem na Ubuntu 18 i używam python3.7. Po wykonaniu „pip install mysqlclient”, musiałem wykonać „sudo apt-get install libmysqlclient-dev”, aby instalacja przebiegła pomyślnie.
Rashmi Singh,

143

... i pamiętaj, że nie ma MySQLdb dla python3.x

(Wiem, że pytanie dotyczy python2.x, ale Google dość wysoko ocenia ten post)


EDYCJA: Jak stwierdzono w komentarzach, istnieje rozwidlenie MySQLdb, które dodaje obsługę języka Python 3: github.com/PyMySQL/mysqlclient-python


Urghhgwaarrbl ... mam nadzieję na użycie python3 w mojej aplikacji Django
Don Cheadle

6
Na szczęście istnieje wybór alternatyw, z których wiele korzysta z tego samego interfejsu API: Python 3 i MySQL
Anthony Geoghegan

4
mysqlclient to rozwidlenie MySQLdb, które dobrze współpracuje z Pythonem 3.
ostrokach

@JanekOlszak Nie wiedziałem o tym - zajęło mi to tylko około dnia wielu przekleństw i uderzeń w klawiaturę - aż do przeczytania tego i zamiany na 2.7. I zgadnij co, wszystko działa hunky-dory ~
3kstc

Moja podróż, to -> to -> to . I w końcu udało mi się go pomyślnie zainstalować.
daka

68

jeśli twoja wersja python jest 3.5, zrób pip install mysqlclient, inne rzeczy nie działały dla mnie


Nie wiem, dlaczego ta odpowiedź została odrzucona, ale mysqlclientjest rozwidleniem projektu MySQLdb i mogę potwierdzić, że zadziałało to dla mnie w systemie Windows 10
Hamman Samuel

1
Pracowałem dla mnie nad arch. Linuksem
Luke Dupin

Pracował na Ubuntu 16.10, Python 3.5.2+
tivadj

Pracował na Ubuntu 14.04 Python 3.4.3
gpk27

Pracował na macOS, Python 3.6.0
Miguel Mota

48

mysqldbto moduł dla Pythona, który nie jest fabrycznie zainstalowany lub z Django. Możesz pobrać mysqldb tutaj .


1
Próbuję zainstalować MySQL-python-1.2.1. Pojawia się komunikat ImportError: Brak modułu o nazwie setuptools Próbuję zainstalować setuptools, ale otrzymuję zlib niedostępny Czy to nie powinno być dołączone do Pythona?
Pierre de LESPINAY

po pobraniu modułu musisz edytować plik site.cfg z właściwą ścieżką dla mysql_config i uruchomićpython setup.py install
ntanase


25

Uwaga: nie jest to testowane dla Pythona 3.x

W CMD

pip install wheel
pip install pymysql

w settings.py

import pymysql
pymysql.install_as_MySQLdb()

To zadziałało ze mną


3
„pip3 install mysqlclient” rozwiązuje problem dla
python3.6

Nie mogę głosować wystarczająco! Jedyne rozwiązanie, które działa na Databricks ..
Foxan Ng

13
pip install PyMySQL

a następnie dodaj te dwa wiersze do swojego Project / Project / init .py

import pymysql
pymysql.install_as_MySQLdb()

Działa na WIN i python 3.3+


Z powodzeniem wykorzystałem twoją sugestię. Jedyną zmianą było polecenie importu: import pymysql Wystąpił typ.
Jorge,

pracował dla mnie na Windows10, Python 3.6, środowisko wirtualne
Yikang Luo

1
Uwielbiam ten hack. Chociaż udało mi się sprawić, że działał bez niego, musiałem jeszcze zawierać plik binarny whql.
Ishmael,

Powinna być poprawna odpowiedź.
Jossie Calderon

12

Spróbuj tego.

pip install MySQL-python

2
Jak to się odnosi w szczególności do środowisk wirtualnych?
Tim

9

dla okna:

pip install mysqlclient pymysql

następnie:

import pymysql pymysql.install_as_MySQLdb ()

dla python 3 Ubuntu

sudo apt-get install -y python3-mysqldb

Uruchomienie po prostu „pip install mysqlclient pymysql” w systemie Windows 10 (Python 3.6.2) rozwiązało mój problem.
Rick Sarvas,

8

Jeśli pip install mysqlclient generuje błąd i używasz Ubuntu, spróbuj:

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

6

Tę samą sytuację spotkałem pod oknami i szukałem rozwiązania.

Widząc ten post Zainstaluj mysql-python (Windows) .

Wskazuje, że instalacja takiego środowiska pip jest trudna, wymaga wielu innych zależności.

Ale w końcu wiem, że jeśli używamy mysqlclientwersji do niższej 1.3.4, to nie potrzebuje już tych wymagań, więc spróbuj:

pip install mysqlclient==1.3.4

4
  • Przejdź do katalogu projektu za pomocą cd.
  • source / bin / aktywuj (aktywuj swoje środowisko, jeśli nie wcześniej).
  • Uruchom polecenie easy_install MySQL-python

1
Nie działaModuleNotFoundError: No module named 'ConfigParser'
TomSawyer

4
pip install --user mysqlclient 

powyżej działa dla mnie jak urok dla mnie. Właściwie wychodzę na błąd z sqlalchemy. Informacje o środowisku:

Python: 3.6, Ubuntu: 16.04, conda 4.6.8


3

Dzięki derevo, ale myślę, że jest inny dobry sposób:

  1. Pobierz i zainstaluj ActivePython
  2. Otwórz wiersz polecenia
  3. Rodzaj pypm install mysql-python
  4. Przeczytaj uwagi dotyczące tego pakietu.

Myślę, że pypmjest bardziej wydajny i niezawodny niż easy_install.


Wygląda na to, że wymaga płatnej subskrypcjiCan't install mysql-python-1.2.3: requires Business Edition subscription
Jeremy S.

Nie wydaje mi się Pamiętam, że zainstalowałem to bez problemu.
Afshin Mehrabani

dlaczego uważasz, że pypm jest potężniejszy i bardziej niezawodny niż easy_install? jakieś punkty na poparcie tego? jakieś artykuły / posty na blogu?
Sandeep Raju Prabhakar

2
Myślę, że byłby to artykuł / post na blogu potwierdzający, że: PI oznacza, daj spokój, popierasz taki komentarz typowo technicznymi argumentami, a nie z kimś innym, kto twierdzi, że to samo, ale także może nie mieć argumentów. Argumenty byłyby jednak miłe;)
Herbert

3

Dla wersji Python 3+

zainstaluj mysql-connectorjako:

pip3 install mysql-connector 

Przykładowy kod połączenia Python DB:

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

Wynik:

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

Oznacza to, że baza danych jest poprawnie podłączona.


3

Osobiście zalecam używanie pymysqlzamiast oryginalnego konektora MySQL, który zapewnia niezależny od platformy interfejs i można go zainstalować pip.

Możesz edytować schemat adresu URL SQLAlchemy w następujący sposób: mysql+pymysql://username:passwd@host/database


3

Dla Pythona 3.6+ sudo apt-get install libmysqlclient-devi pip3 install mysqlclient załatwia sprawę


2

Jeśli korzystasz z systemu Vista, możesz sprawdzić stos Bitnami Django. Jest to kompleksowy stos Apache, Python, MySQL itp., Spakowany z instalatorami krzyżowymi Bitrock, aby naprawdę łatwo było zacząć. Działa w systemach Windows, Mac i Linux. Aha, i jest całkowicie darmowy :)


Dlaczego więc powiedziałeś „Jeśli korzystasz z systemu Vista”, jeśli będzie działać na więcej niż systemie Vista? Jest to mylące i mylące.
Anthony

3
Do Anthony'ego: Po prostu zabawne było to, że w głosowaniu, który otrzymał najwięcej głosów, podano instrukcje dla Linuksa, FreeBSD i OSX, ale nie dla Visty zgodnie z plakatem
Daniel Lopez

2

Próbowałem powyższych metod, ale nadal nie ma modułu o nazwie „MySQLdb”, w końcu udało mi się

easy_install mysql-python

moja env to unbuntu 14.04


sukces dla virtualenv / python2.7
nguyên

1

W OSX te polecenia działały dla mnie

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

1

Jeśli używasz SQLAlchemy, a błąd występuje w /site-packages/sqlalchemy/dialects/mysql/mysqldb.py:

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

więc mogło brakować konektora mysqldb, SQLAlchemya rozwiązaniem jest ponowna instalacja narzędzia sqlalchemy po zainstalowaniu mysql-pythonmodułu.


0

Win10 / Python27 to zadziałało dla mnie:

easy_install mysql-python

wszystkie inne „instalacje pip ...” nie powiodły się z błędami zależności


0

Żadne z powyższych nie działało dla mnie w przypadku nowej instalacji Ubuntu 18.04 za pośrednictwem obrazu dokowania.

Dla mnie to rozwiązało:

apt-get install holland python3-mysqldb


0

Na moim komputerze Mac z Cataliną 10.15.2 miałem następujący konflikt wersji MySQLdb:

ImportError: this is MySQLdb version (1, 2, 5, 'final', 1), but _mysql is version (1, 4, 6, 'final', 0)

Aby to rozwiązać, wykonałem następujące czynności:

pip uninstall MySQL-python
pip install MySQL-python

0

W przypadku Debian Buster następujące rozwiązanie działało w przypadku Pythona 3.7:

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

0

Jestem w Ubuntu (Linux) i to, co zadziałało, było dla mnie

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

a potem w końcu

pip install mysqlclient
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.