Integrazione di MySQL con Python in Windows


102

Trovo difficile usare MySQL con Python nel mio sistema Windows.

Attualmente sto usando Python 2.6. Ho provato a compilare il codice sorgente di MySQL-python-1.2.3b1 (che dovrebbe funzionare per Python 2.6?) Utilizzando gli script di installazione forniti. Lo script di installazione viene eseguito e non segnala alcun errore ma non genera il modulo _mysql.

Ho anche provato a configurare MySQL per Python 2.5 senza successo. Il problema con l'utilizzo di 2.5 è che Python 2.5 è compilato con visual studio 2003 (l'ho installato utilizzando i binari forniti). Ho Visual Studio 2005 sul mio sistema Windows. Quindi setuptools non riesce a generare il modulo _mysql.

Qualsiasi aiuto ?


2
Sono passati 3 anni da quando è stato chiesto e 2 anni dall'ultima risposta votata, vedi la risposta aggiornata per Python 3.2 di seguito (o vedi wiki.python.org/moin/MySQL )
Eran Medan

Risposte:


127

Pagina di download per python-mysqldb . La pagina include i binari per le versioni a 32 e 64 bit di Python 2.5, 2.6 e 2.7.

Si discute anche su come sbarazzarsi dell'avviso di deprecazione .

AGGIORNAMENTO : Questa è una vecchia risposta. Attualmente, consiglierei di utilizzare PyMySQL. È puro python, quindi supporta tutti i sistemi operativi allo stesso modo, è quasi un sostituto immediato di mysqldb e funziona anche con python 3. Il modo migliore per installarlo è usare pip. Puoi installarlo da qui (maggiori istruzioni qui ), quindi eseguire:

pip install pymysql

Qualcuno può confermare che il primo eseguibile collegato funziona con Python 2.6? La schermata iniziale dell'installazione dice che è solo 2,5, ma presumo che la persona che l'ha costruita potrebbe non aver aggiornato quella linea di documentazione.
John C

Ho installato python 2.7 x64 ma durante l'importazione di MySQLdb ricevo l'errore "ImportError: No module named _mysql_windows.api". qualcuno mi aiuta a risolvere questo problema.
Vilva

4
Bene, dopo averlo fatto pip install pymysql, syncdbsi lamentava ancora del MySQLdbmodulo mancante .
Shailen

mentre eseguo questo comando nel mio sistema Windows 8.1 a 64 bit mostra: Traceback (ultima chiamata più recente): File "C: \ Python33 \ Scripts \ pip-script.py", riga 5, in <module> da pkg_resources import load_entry_point ImportError: Nessun modulo denominato "pkg_resources"
hizbul25

@shailenTJ (e chiunque abbia un problema simile) guarda qui
itsadok

31

Questo può sembrare come un consiglio di tuo nonno, ma tutte le risposte qui non menzionano il modo migliore: vai a installare ActivePython invece dei binari di Windows di python.org. Mi stavo davvero chiedendo per molto tempo perché lo sviluppo di Python su Windows fosse una tale pita - fino a quando non ho installato activestate python. Non sono affiliato con loro. È solo la pura verità. Scrivilo su ogni muro: sviluppo Python su Windows = ActiveState ! allora basta pypm install mysql-pythone tutto funziona senza intoppi. nessuna compilazione orgia. nessun errore strano. nessun terrore. Basta iniziare a programmare e fare un vero lavoro dopo cinque minuti. Questo è l'unico modo per andare su Windows. Veramente.


2
Sarebbe una soluzione perfetta se un abbonamento Business Edition non fosse necessario ...
Matheus Moreira

4
@ matheus.emm - Business Edition non è necessario per l'installazione di MySQLdb su Windows a 32 bit.
Sridhar Ratnakumar

7
@ matheus.emm - Per l'accesso gratuito, puoi installare ActivePython a 32 bit sul tuo sistema operativo Windows 7 a 64 bit e quindi installare mysql-python. ActivePython a 64 bit richiede un abbonamento BE per l'installazione dei pacchetti.
Sridhar Ratnakumar

2
Questo è un ottimo consiglio. Penso che la Business Edition valga la pena se stai usando seriamente Python in produzione. Se ti fa risparmiare qualche ora di lavoro al mese si ripaga da solo. Tutti questi problemi di configurazione mi fanno ricordare il modello di business open source: "Dai loro il software gratuitamente, ma rendilo così difficile da installare e utilizzare che devono acquistare il manuale e / o il supporto." L'unico problema è che molti di questi progetti non forniscono o vendono supporto perché vedono l'open source come un'ideologia invece di come doveva essere, un modello di business. lolz
Dana Holt

1
L'ho appena installato usando l'edizione della community activepython e ha funzionato a meraviglia. Altamente raccomandato
Cleber Goncalves

15

Come principiante di Python che impara l'ecosistema Python, ho appena completato questo.

  1. Installa le istruzioni di setuptools

  2. Installa MySQL 5.1. Scarica l'MSI da 97,6 MB da qui Non puoi usare la versione Essentials perché non contiene le librerie C.
    Assicurati di selezionare un'installazione personalizzata e contrassegna gli strumenti / librerie di sviluppo per l'installazione poiché non viene eseguita per impostazione predefinita. Questo è necessario per ottenere i file di intestazione C.
    Puoi verificare di averlo fatto correttamente cercando nella directory di installazione una cartella denominata "include". Ad esempio C: \ Programmi \ MySQL \ MySQL Server 5.1 \ include. Dovrebbe avere un sacco di file .h.

  3. Installa Microsoft Visual Studio C ++ Express 2008 da qui Questo è necessario per ottenere un compilatore C.

  4. Apri una riga di comando come amministratore (fai clic con il pulsante destro del mouse sul collegamento Cmd e poi "esegui come amministratore". Assicurati di aprire una nuova finestra dopo aver installato quelle cose o il tuo percorso non verrà aggiornato e l'installazione non riuscirà comunque.

  5. Dal prompt dei comandi:

    installazione_agevole -b C: \ temp \ Sometempdir mysql-python

    Ciò fallirà, il che è OK.

    Ora apri site.cfg nella tua directory temporanea C: \ temp \ Sometempdir e modifica l'impostazione "registry_key" in:

    chiave_registro = SOFTWARE \ MySQL AB \ MySQL Server 5.1

    ora CD nella tua directory temporanea e:

    python setup.py pulito

    installazione di python setup.py

    Dovresti essere pronto per il rock!

  6. Ecco uno script semplicissimo per iniziare a imparare l'API DB Python per te, se ne hai bisogno.


7

Ho trovato una posizione in cui una persona aveva creato con successo mysql per python2.6, condividendo il collegamento, http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

... potresti vedere un avviso durante l'importazione di MySQLdb che va bene e non danneggerà nulla,

C: \ Python26 \ lib \ site-packages \ MySQLdb__init __. Py: 34: Deprecation Avvertenza: il modulo sets è deprecato da sets import ImmutableSet


5

Che mi dici di pymysql ? È puro Python e l'ho usato su Windows con notevole successo, aggirando le difficoltà di compilazione e installazione di mysql-python.






2

Puoi provare a usare myPySQL. È davvero facile da usare; nessuna compilazione per Windows, e anche se hai bisogno di compilarlo per qualsiasi motivo, hai solo bisogno di Python e Visual C installati (non mysql).

http://code.google.com/p/mypysql/

In bocca al lupo


1

Poiché sto eseguendo python in un virtualenv (piloni / piramide), non ho potuto eseguire i programmi di installazione binari (utilmente) collegati in precedenza.

Ho avuto problemi a seguire i passaggi con la risposta di Willie, ma ho stabilito che il problema è (probabilmente) che sto eseguendo l'installazione di Windows 7 x64, che inserisce la chiave di registro per mysql in una posizione leggermente diversa, in particolare nel mio caso (nota: io sto eseguendo la versione 5.5) in: "HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MySQL AB \ MySQL Server 5.5".

TUTTAVIA, "HKEY_LOCAL_MACHINE \" non può essere incluso nel percorso o fallirà.

Inoltre, ho dovuto riavviare tra i passaggi 3 e 4.

Dopo aver lavorato su tutto questo, IMO sarebbe stato più intelligente eseguire l'intero ambiente di sviluppo python da cygwin.



0

Potresti anche prendere in considerazione l'utilizzo di Cygwin , che ha librerie mysql python nel repository.


0

Puoi anche usare pyodbc con MySQL Connector / ODBC per usare MySQL su Windows. Unixodbc è anche disponibile per rendere il codice compatibile su Linux. Pyodbc utilizza lo standard Python DB API 2.0, quindi se ti attieni a quel passaggio tra i driver MySQL / PostgreSQL / SQLite / ODBC / JDBC ecc. Dovrebbe essere relativamente indolore.



0

Mi sono ammalato dei problemi di installazione con MySQLdb e ho provato invece pymysql .

Facile configurazione;

git clone https://github.com/petehunt/PyMySQL.git
python setup.py install

E le API sono praticamente le stesse.

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.