Nessun modulo chiamato MySQLdb


400

Sto usando Python versione 2.5.4 e installo MySQL versione 5.0 e Django. Django funziona perfettamente con Python, ma non con MySQL. Lo sto usando in Windows Vista.


43
pip install mysql-pythonoppurepip install mysqlclient
Cœur il

13
Ho dovuto installare sudo apt-get install libmysqlclient-devper farlo funzionare.
b00r00x0

pip install mysqlclient ha funzionato su Windows x64 10, You rock Cœur
Itachi Sama

8
Per Python3.6 sudo apt-get install libmysqlclient-deve ha pip3 install mysqlclientfunzionato per me
Umair

Risposte:


639

È necessario utilizzare uno dei seguenti comandi. Quale dipende da quale sistema operativo e software hai e usi.

  1. easy_install mysql-python (mix os)
  2. installa 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 / porti / database / py-MySQLdb && rendono l'installazione pulita (FreeBSD)
  6. installa MySQL-python (Linux Fedora, CentOS ...)

Per Windows, vedi questa risposta: Installa mysql-python (Windows)


1
Ho dovuto aggiornare la mia versione di setuptools in modo che corrispondesse alla mia versione aggiornata di Python su Mac OS prima di riuscire a farlo funzionare.
Jonathan Adelson,

4
e che ne dici di installare su virtualenv con python 3 su di esso? Ho usato: installa pip mysql-python solo per ottenere: ImportError: nessun modulo chiamato ConfigParser
Iliyan Bobev

9
In Python 3, ConfigParser è stato rinominato in configparser per la conformità PEP 8. Sembra che il pacchetto che stai installando non supporti Python 3. Attualmente MySQL-python non supporta Python 3.
derevo

2
Ricevo questo errore quando utilizzo 1 o 2 in OSX Yosemite:EnvironmentError: mysql_config not found
Mona Jalal

1
Cordiali saluti - Sono su Ubuntu 18 e utilizzo Python3.7. Dopo aver eseguito "pip install mysqlclient", ho dovuto eseguire "sudo apt-get install libmysqlclient-dev" per una corretta installazione.
Rashmi Singh,

144

... e ricorda che non esiste MySQLdb per python3.x

(So ​​che la domanda riguarda python2.x, ma Google giudica questo post piuttosto alto)


EDIT: Come affermato nei commenti, c'è un fork di MySQLdb che aggiunge il supporto Python 3: github.com/PyMySQL/mysqlclient-python


Urghhgwaarrbl ... ecco le mie speranze di usare python3 nella mia app Django
Don Cheadle

6
Fortunatamente, c'è una selezione di alternative, molte delle quali usano la stessa API: Python 3 e MySQL
Anthony Geoghegan

4
mysqlclient è un fork di MySQLdb che funziona bene con Python 3.
ostrokach

@JanekOlszak Non lo sapevo - ci sono voluti solo circa un giorno di parolacce e battiti sulla tastiera - fino a quando non ho letto e scambiato con 2.7. E indovina un po ', tutto funziona hunky-dory ~
3kstc l'

Il mio viaggio, questo -> questo -> questo . E poi, sono stato finalmente in grado di installarlo con successo.
daka,

68

se la tua versione di Python è 3.5, fai un pip install mysqlclient, altre cose non hanno funzionato per me


Non so perché questa risposta sia stata sottovalutata, ma mysqlclientè un fork del progetto MySQLdb e posso confermare che ha funzionato per me su Windows 10
Hamman Samuel,

1
Ha funzionato per me su Arch Linux
Luke Dupin il

Ha funzionato su Ubuntu 16.10, Python 3.5.2+
tivadj il

Ha funzionato su Ubuntu 14.04 Python 3.4.3
gpk27 il

Ha funzionato su macOS, Python 3.6.0
Miguel Mota,

48

mysqldbè un modulo per Python che non viene preinstallato o con Django. Puoi scaricare mysqldb qui .


1
Tentativo di installare MySQL-python-1.2.1 Ricevo il messaggio ImportError: nessun modulo chiamato setuptools Tentativo di installare setuptools, ottengo zlib non disponibile non dovrebbe essere in bundle con python?
Pierre de LESPINAY,

dopo aver scaricato il modulo dovrai modificare il file site.cfg con il percorso giusto per mysql_config e l'esecuzionepython setup.py install
ntanase


25

Nota che questo non è testato per Python 3.x

In CMD

pip install wheel
pip install pymysql

in settings.py

import pymysql
pymysql.install_as_MySQLdb()

Ha funzionato con me


3
"pip3 install mysqlclient" risolve il problema per python3.6 /
showmyroutes l'

Non posso votare abbastanza! L'unica soluzione che funziona su Databricks ..
Foxan Ng

13
pip install PyMySQL

e quindi aggiungi queste due righe al tuo Progetto / Progetto / init .py

import pymysql
pymysql.install_as_MySQLdb()

Funziona su WIN e Python 3.3+


Ho usato il tuo suggerimento con successo. L'unica modifica era nel comando import: import pymysql C'era al tipo.
Jorge,

ha funzionato per me su windows10, python 3.6, ambiente virtuale
Yikang Luo,

1
Adoro questo trucco. Anche se sono riuscito a farlo funzionare senza di esso, ho dovuto incorporare un file binario whql.
Ismaele,

Dovrebbe essere la risposta corretta.
Jossie Calderon,

12

Prova questo.

pip install MySQL-python

2
Come si applica specificamente agli ambienti virtuali?
Tim

9

per finestra:

pip install mysqlclient pymysql

poi:

import pymysql pymysql.install_as_MySQLdb ()

per Python 3 Ubuntu

sudo apt-get install -y python3-mysqldb

L'esecuzione di "pip install mysqlclient pymysql" su Windows 10 (Python 3.6.2) ha risolto il mio problema.
Rick Sarvas,

8

Se pip install mysqlclient produce un errore e si utilizza Ubuntu, provare:

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

6

Ho incontrato la stessa situazione sotto Windows e ho cercato la soluzione.

Vedendo questo post Installa mysql-python (Windows) .

Sottolinea che l'installazione di un tale ambiente pip è difficile, ha bisogno di molte altre dipendenze.

Ma finalmente so che se usiamo mysqlclientcon una versione fino a 1.3.4, non ha più bisogno di quei requisiti, quindi prova:

pip install mysqlclient==1.3.4

4
  • Vai alla directory del tuo progetto con cd.
  • source / bin / activ (attiva il tuo ambiente se non precedentemente).
  • Esegui il comando easy_install MySQL-python

1
Non funzionaModuleNotFoundError: No module named 'ConfigParser'
TomSawyer

4
pip install --user mysqlclient 

sopra funziona per me come per me fascino. Vado in realtà l'errore di sqlalchemy. Informazioni sull'ambiente:

Python: 3.6, Ubuntu: 16.04, conda 4.6.8


3

Grazie a derevo ma penso che ci sia un altro buon modo per farlo:

  1. Scarica e installa ActivePython
  2. Apri il prompt dei comandi
  3. genere pypm install mysql-python
  4. Leggi le note specifiche per questo pacchetto.

Penso che pypmsia più potente e affidabile di easy_install.


Sembra che richieda un abbonamento a pagamentoCan't install mysql-python-1.2.3: requires Business Edition subscription
Jeremy S.

Io non la penso così. Ricordo di averlo installato senza problemi.
Afshin Mehrabani,

perché pensi che pypm sia più potente e affidabile di easy_install? qualche punto per supportarlo? qualche articolo / blogposts?
Sandeep Raju Prabhakar,

2
Penso che questo sarebbe l'articolo / post sul blog a supporto del fatto che: PI significa, dai, sostieni un tale commento con argomenti tipicamente tecnici, non con qualcun altro che afferma lo stesso, ma potrebbe anche non avere argomenti. Comunque, gli argomenti sarebbero carini;)
Herbert il

3

Per la versione di Python 3+

installa mysql-connectorcome:

pip3 install mysql-connector 

Codice di connessione di esempio Python DB:

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

Produzione:

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

Ciò significa che il database è collegato correttamente.


3

Personalmente raccomando di utilizzare pymysqlinvece di utilizzare il connettore MySQL originale, che fornisce un'interfaccia indipendente dalla piattaforma e che può essere installato tramitepip .

E puoi modificare lo schema dell'URL SQLAlchemy in questo modo: mysql+pymysql://username:passwd@host/database


3

Per Python 3.6+ sudo apt-get install libmysqlclient-deve pip3 install mysqlclient fa il trucco


2

Se stai eseguendo Vista, potresti voler dare un'occhiata allo stack Bitnami Django. È uno stack all-in-one di Apache, Python, MySQL, ecc. Impacchettato con gli installer multipiattaforma Bitrock per rendere davvero facile iniziare. Funziona su Windows, Mac e Linux. Oh, ed è completamente gratuito :)


Allora perché hai detto "Se stai eseguendo su Vista" se funzionerà su più di Vista? È fuorviante e confuso.
Anthony,

3
Per Anthony: ho appena trovato divertente il fatto che il commento più votato fornisse istruzioni per Linux, FreeBSD e OSX ma non per Vista come specificato dal poster
Daniel Lopez,

2

Ho provato i metodi sopra, ma ancora nessun modulo chiamato 'MySQLdb', finalmente ci riesco

easy_install mysql-python

il mio env è unbuntu 14.04


successo per virtualenv / python2.7
nguyên

1

Su OSX questi comandi hanno funzionato per me

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

1

Se stai usando SQLAlchemy e l'errore è in /site-packages/sqlalchemy/dialects/mysql/mysqldb.py:

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

quindi potresti aver perso il connettore mysqldb SQLAlchemye la soluzione è reinstallare sqlalchemy dopo aver installato il mysql-pythonmodulo.


0

Win10 / Python27 questo ha funzionato per me:

easy_install mysql-python

tutti gli altri 'pip install ...' non sono riusciti con errori di dipendenza


0

Nessuna delle precedenti ha funzionato per me su una nuova installazione di Ubuntu 18.04 tramite l'immagine docker.

Quanto segue risolto per me:

apt-get install holland python3-mysqldb


0

Sul mio Mac con Catalina v10.15.2, ho avuto il seguente conflitto di versione di MySQLdb:

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

Per risolverlo, ho fatto quanto segue:

pip uninstall MySQL-python
pip install MySQL-python

0

Su Debian Buster, la seguente soluzione ha funzionato per me con Python 3.7:

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

0

Sono su Ubuntu (Linux) e quello che ha funzionato per me è stato

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

e poi finalmente

pip install mysqlclient
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.