Integration von MySQL in Python in Windows

102

Ich finde es schwierig, MySQL mit Python in meinem Windows-System zu verwenden.

Ich verwende derzeit Python 2.6. Ich habe versucht, den Quellcode von MySQL-python-1.2.3b1 (der für Python 2.6 funktionieren soll?) Mit den bereitgestellten Setup-Skripten zu kompilieren. Das Setup-Skript wird ausgeführt und meldet keinen Fehler, generiert jedoch kein _mysql-Modul.

Ich habe auch versucht, MySQL für Python 2.5 ohne Erfolg einzurichten. Das Problem bei der Verwendung von 2.5 ist, dass Python 2.5 mit Visual Studio 2003 kompiliert wurde (ich habe es mit den bereitgestellten Binärdateien installiert). Ich habe Visual Studio 2005 auf meinem Windows-System. Daher kann setuptools das Modul _mysql nicht generieren.

Irgendeine Hilfe ?

Sammy
quelle
2
Da 3 Jahre vergangen sind, seit dies gefragt wurde, und 2 Jahre seit der letzten Antwort mit hoher Abstimmung, siehe aktualisierte Antwort für Python 3.2 unten (oder siehe wiki.python.org/moin/MySQL )
Eran Medan

Antworten:

127

Download-Seite für python-mysqldb . Die Seite enthält Binärdateien für 32- und 64-Bit-Versionen von Python 2.5, 2.6 und 2.7.

Es gibt auch Diskussionen darüber, die Abwertungswarnung loszuwerden .

UPDATE : Dies ist eine alte Antwort. Derzeit würde ich die Verwendung von PyMySQL empfehlen. Es ist reines Python, unterstützt also alle Betriebssysteme gleichermaßen, ist fast ein Ersatz für mysqldb und funktioniert auch mit Python 3. Der beste Weg, es zu installieren, ist die Verwendung von pip. Sie können es von hier aus installieren (weitere Anweisungen hier ) und dann ausführen:

pip install pymysql
itsadok
quelle
Kann jemand bestätigen, dass die erste verknüpfte ausführbare Datei mit Python 2.6 funktioniert? Der Installations-Begrüßungsbildschirm zeigt an, dass es nur 2,5 sind - aber ich gehe davon aus, dass die Person, die es erstellt hat, diese Dokumentationszeile möglicherweise nicht aktualisiert hat.
John C
Ich habe Python 2.7 x64 installiert, aber beim Importieren von MySQLdb wird der Fehler 'ImportError: Kein Modul namens _mysql_windows.api' angezeigt. Bitte helfen Sie mir, dieses Problem zu lösen.
Vilva
4
Nun , nachdem tun pip install pymysql, syncdbklagte noch über das fehlende MySQLdbModul.
Shailen
Während ich diesen Befehl in meinem Windows 8.1 64-Bit-System ausführe, wird Folgendes angezeigt: Traceback (letzter Aufruf zuletzt): Datei "C: \ Python33 \ Scripts \ pip-script.py", Zeile 5, in <Modul> von pkg_resources import load_entry_point ImportError: Kein Modul mit dem Namen 'pkg_resources'
hizbul25
@shailenTJ (und jeder mit einem ähnlichen Problem) schauen Sie hier
itsadok
31

Dies mag sich wie der Rat Ihres Großvaters anhören, aber in allen Antworten wurde nicht der beste Weg erwähnt: Installieren Sie ActivePython anstelle der Windows-Binärdateien von python.org. Ich habe mich lange gefragt, warum die Python-Entwicklung unter Windows so eine Pita ist - bis ich Activestate Python installiert habe. Ich bin nicht mit ihnen verbunden. Es ist nur die klare Wahrheit. Schreiben Sie es an jede Wand: Python-Entwicklung unter Windows = ActiveState ! Sie dann einfach pypm install mysql-pythonund alles funktioniert reibungslos. keine Kompilierorgie. keine seltsamen Fehler. kein Terror. Beginnen Sie einfach nach fünf Minuten mit dem Codieren und erledigen Sie echte Arbeit. Dies ist der einzige Weg, um auf Windows zu gehen. Ja wirklich.

Gorgonzola Balistico Refurbo B.
quelle
2
Es wäre eine perfekte Lösung, wenn ein Business Edition-Abonnement nicht erforderlich wäre ...
Matheus Moreira
4
@ matheus.emm - Business Edition ist für die Installation von MySQLdb unter Windows 32-Bit nicht erforderlich.
Sridhar Ratnakumar
7
@ matheus.emm - Für den freien Zugriff können Sie ActivePython 32-Bit auf Ihrem Windows 7 64-Bit-Betriebssystem installieren und anschließend mysql-python installieren. Für ActivePython 64-Bit ist ein BE-Abonnement für die Installation von Paketen erforderlich.
Sridhar Ratnakumar
2
Das ist ein toller Rat. Ich denke, die Business Edition lohnt sich, wenn Sie Python ernsthaft in der Produktion einsetzen. Wenn Sie dadurch ein paar Stunden Arbeit im Monat sparen, macht es sich bezahlt. All diese Konfigurationsprobleme erinnern mich an das Open-Source-Geschäftsmodell: "Geben Sie ihnen die Software kostenlos, aber machen Sie die Installation und Verwendung so schwierig, dass sie das Handbuch und / oder den Support kaufen müssen." Das einzige Problem ist, dass viele dieser Projekte keine Unterstützung bieten oder verkaufen, weil sie Open Source als Ideologie betrachten, anstatt als das, was es sein sollte, als Geschäftsmodell. lolz
Dana Holt
1
Einfach mit der Activepython Community Edition installiert und es hat wie ein Zauber funktioniert. Sehr zu empfehlen
Cleber Goncalves
15

Als Python-Neuling, der das Python-Ökosystem lernt, habe ich dies gerade abgeschlossen.

  1. Installieren Sie die Anweisungen für setuptools

  2. Installieren Sie MySQL 5.1. Laden Sie das 97,6 MB MSI von hier herunter. Sie können die Essentials-Version nicht verwenden, da sie nicht die C-Bibliotheken enthält.
    Stellen Sie sicher, dass Sie eine benutzerdefinierte Installation auswählen und die Entwicklungstools / Bibliotheken für die Installation markieren, da dies nicht standardmäßig erfolgt. Dies ist erforderlich, um die C-Header-Dateien abzurufen.
    Sie können überprüfen, ob Sie dies richtig gemacht haben, indem Sie in Ihrem Installationsverzeichnis nach einem Ordner mit dem Namen "include" suchen. EG C: \ Programme \ MySQL \ MySQL Server 5.1 \ include. Es sollte eine ganze Reihe von .h-Dateien enthalten.

  3. Installieren Sie Microsoft Visual Studio C ++ Express 2008 von hier aus. Dies ist erforderlich, um einen C-Compiler zu erhalten.

  4. Öffnen Sie eine Befehlszeile als Administrator (klicken Sie mit der rechten Maustaste auf die Cmd-Verknüpfung und klicken Sie dann auf "Als Administrator ausführen". Öffnen Sie nach der Installation dieser Elemente unbedingt ein neues Fenster, da sonst Ihr Pfad nicht aktualisiert wird und die Installation weiterhin fehlschlägt.

  5. An der Eingabeaufforderung:

    easy_install -b C: \ temp \ sometempdir mysql-python

    Das wird scheitern - was in Ordnung ist.

    Öffnen Sie nun site.cfg in Ihrem temporären Verzeichnis C: \ temp \ sometempdir und bearbeiten Sie die Einstellung "registry_key" auf:

    registry_key = SOFTWARE \ MySQL AB \ MySQL Server 5.1

    jetzt CD in dein temporäres Verzeichnis und:

    python setup.py sauber

    python setup.py installieren

    Du solltest bereit sein zu rocken!

  6. Hier ist ein supereinfaches Skript, mit dem Sie die Python DB-API für Sie erlernen können - falls erforderlich.

Gemeinschaft
quelle
7

Ich fand einen Speicherort, an dem eine Person MySQL für Python2.6 erfolgreich erstellt hatte und den Link http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe teilte

... beim Importieren von MySQLdb wird möglicherweise eine Warnung angezeigt, die in Ordnung ist und nichts schadet.

C: \ Python26 \ lib \ site-packages \ MySQLdb__init __. Py: 34: DeprecationWarning: Das Sets-Modul ist vom Set-Import ImmutableSet veraltet


quelle
5

Was ist mit pymysql ? Es ist reines Python, und ich habe es unter Windows mit beachtlichem Erfolg verwendet, um die Schwierigkeiten beim Kompilieren und Installieren von mysql-python zu umgehen.

JasonFruit
quelle
2

Die vorkompilierten Binärdateien auf http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python funktionieren nur für mich.

  1. Öffnen MySQL_python-1.2.5-cp27-none-win_amd64.whlDatei mit Zip Extractor Programm .
  2. Kopieren Sie den Inhalt nach C:\Python27\Lib\site-packages\
Guneysos
quelle
2

Sie können versuchen, myPySQL zu verwenden. Es ist wirklich einfach zu bedienen; Keine Kompilierung für Windows, und selbst wenn Sie es aus irgendeinem Grund kompilieren müssen, müssen nur Python und Visual C installiert sein (nicht MySQL).

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

Viel Glück

Gustavo Vargas
quelle
1

Da ich Python in einer virtuellen Umgebung (Pylone / Pyramide) ausführe, konnte ich die zuvor verknüpften Binärinstallationsprogramme (hilfreich) nicht ausführen.

Ich hatte Probleme, die Schritte mit Willies Antwort zu befolgen, aber ich stellte fest, dass das Problem (wahrscheinlich) darin besteht, dass ich Windows 7 x64 installiere, wodurch der Registrierungsschlüssel für MySQL an einem etwas anderen Speicherort abgelegt wird, insbesondere in meinem Fall (Hinweis: I. Ich verwende Version 5.5) in: "HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ MySQL AB \ MySQL Server 5.5".

"HKEY_LOCAL_MACHINE \" kann jedoch nicht in den Pfad aufgenommen werden, da dies sonst fehlschlägt.

Außerdem musste ich zwischen den Schritten 3 und 4 einen Neustart durchführen.

Nach all dem, IMO, wäre es klüger gewesen, die gesamte Python-Entwicklungsumgebung von Cygwin aus auszuführen.

Evan
quelle
0

Vielleicht möchten Sie auch Cygwin verwenden , das MySQL-Python-Bibliotheken im Repository enthält.

lfaraone
quelle
0

Sie können pyodbc auch mit dem MySQL Connector / ODBC verwenden , um MySQL unter Windows zu verwenden. Unixodbc ist auch verfügbar, um den Code unter Linux kompatibel zu machen. Pyodbc verwendet die Standard-Python- DB-API 2.0. Wenn Sie also bei diesem Wechsel zwischen MySQL / PostgreSQL / SQLite / ODBC / JDBC-Treibern usw. bleiben, sollte dies relativ schmerzlos sein.

Fidschiaaron
quelle
0

Ich hatte die Installationsprobleme mit MySQLdb satt und versuchte stattdessen pymysql .

Einfache Einstellung;

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

Und APIs sind ziemlich gleich.

Daniel Magnusson
quelle