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.