Ż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.

jbcedge
źródło
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)

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

Janek Olszak
źródło
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

goksel
źródło
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 .

Evan Fosmark
źródło
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
34

Ubuntu:

sudo apt-get install python-mysqldb
panckreous
źródło
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ą

A.Raouf
źródło
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+

alphiii
źródło
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
Venkat Kotra
źródło
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
Saurabh Chandra Patel
źródło
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
Kostyantyn
źródło
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
Alfred Huang
źródło
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
GrvTyagi
źródło
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

Forhad
źródło
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.

Afshin Mehrabani
źródło
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.

Om Sao
źródło
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

Justin Lee
źródło
3

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

Umair
źródło
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 :)

Daniel Lopez
źródło
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

Pythoner
źródło
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
Joe Inner
źródło
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.

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

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

jfxninja
źródło
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
ScottK
źródło
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
nsssayom
źródło
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
Arsalan Ahmad Ishaq
źródło