Update für diejenigen, die Python3 verwenden: Sie können einfach conda install mysqlclient
verwenden um die Bibliotheken zu installieren, die erforderlich sind, um MySQLdb so zu verwenden, wie es derzeit vorhanden ist. Die folgende SO-Frage war ein hilfreicher Hinweis:Python 3 ImportError:Kein Modul namens 'ConfigParser'
. Durch die Installation von mysqlclient werden mysqlclient, mysql-connector und llvmdev installiert (zumindest wurden diese 3 Bibliotheken auf meinem Rechner installiert).
Hier ist die Geschichte meiner weitläufigen Erfahrung mit diesem Problem. Würde es gerne bearbeitet oder verallgemeinert sehen, wenn Sie bessere Erfahrungen mit dem Problem haben ... wenden Sie ein bisschen von dieser SO-Magie an.
Hinweis:Die Kommentare im nächsten Absatz beziehen sich auf Snow Leopard, aber nicht auf Lion, das anscheinend 64-Bit-MySQL erfordert
Zunächst einmal sagt der Autor (noch?) von MySQLdb hier dass eines der schädlichsten Probleme darin besteht, dass OS X mit einer 32-Bit-Version von Python vorinstalliert ist, aber die meisten Durchschnittsbürger (mich eingeschlossen) wahrscheinlich sofort die 64-Bit-Version von MySQL installieren. Schlechter Zug ... entfernen Sie die 64-Bit-Version, wenn Sie sie installiert haben (Anweisungen zu dieser kniffligen Aufgabe finden Sie unter SO hier ), laden Sie dann die 32-Bit-Version herunter und installieren Sie sie (Paket hier )
Es gibt zahlreiche Schritt-für-Schritt-Anleitungen zum Erstellen und Installieren der MySQLdb-Bibliotheken. Sie haben oft feine Unterschiede. Dieser schien mir am beliebtesten und lieferte die funktionierende Lösung. Ich habe es unten mit ein paar Änderungen wiedergegeben
Schritt 0: Bevor ich anfange, gehe ich davon aus, dass Sie MySQL, Python und GCC auf dem Mac installiert.
Schritt 1: Laden Sie den neuesten MySQL für Python-Adapter herunter von SourceForge.
Schritt 2: Extrahieren Sie Ihr heruntergeladenes Paket:
tar xzvf MySQL-python-1.2.2.tar.gz
Schritt 3: Bereinigen Sie das Paket im Ordner:
sudo python setup.py clean
PAAR ZUSÄTZLICHE SCHRITTE, (aus diesem Kommentar ). )
Schritt 3b: Entfernen Sie alles unter Ihrem MySQL-python-1.2.2/build/*-Verzeichnis – vertrauen Sie nicht darauf, dass „python setup.py clean“ dies für Sie erledigt
Schritt 3c: Entfernen Sie das Ei unter Users/$USER/.python-eggs
Schritt 4: Ursprünglich erforderlich, _mysql.c zu bearbeiten, ist jetzt aber NICHT MEHR ERFORDERLICH. Die MySQLdb-Community scheint diesen Fehler jetzt behoben zu haben.
Schritt 5: Erstellen Sie einen symbolischen Link unter lib, um auf ein Unterverzeichnis namens mysql zu verweisen. Hiernach wird während der Kompilierung gesucht.
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
Schritt 6: Bearbeiten Sie setup_posix.py und ändern Sie Folgendes
mysql_config.path ="mysql_config"
zu
mysql_config.path ="/usr/local/mysql/bin/mysql_config"
Schritt 7: Erstellen Sie im selben Verzeichnis Ihr Paket neu (ignorieren Sie die damit verbundenen Warnungen)
sudo python setup.py build
Schritt 8: Installieren Sie das Paket und Sie sind fertig.
sudo python setup.py install
Schritt 9: Testen Sie, ob es funktioniert. Es funktioniert, wenn Sie MySQLdb importieren können.
python
>>> import MySQLdb
Schritt 10: Wenn Sie beim Importieren eine Fehlermeldung erhalten, dass Library not loaded: libmysqlclient.18.dylib
endet mit:Reason: image not found
Sie müssen einen zusätzlichen Symlink erstellen, der lautet:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Sie sollten dann in der Lage sein, import MySQLdb
ohne Fehler.
Ein letztes Problem ist jedoch, dass Sie diesen Fehler erhalten, wenn Sie Python aus dem Build-Verzeichnis starten:
/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3:UserWarning:Modul _mysql wurde bereits aus /Library/Python/2.5/ importiert site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.pyc, aber XXXX/MySQL-python-1.2.3c1 wird zu sys.path
hinzugefügt
Das ist für Google ziemlich einfach, aber um Ihnen den Ärger zu ersparen, landen Sie hier
(oder vielleicht auch nicht... keine besonders zukunftssichere URL) und finden Sie heraus, dass Sie cd ..
müssen außerhalb des Build-Verzeichnisses und der Fehler sollte verschwinden.
Wie ich oben geschrieben habe, würde ich diese Antwort gerne verallgemeinern sehen, da es zahlreiche andere spezifische Erfahrungen mit diesem schrecklichen Problem gibt. Bearbeiten Sie sie weg oder geben Sie Ihre eigene, bessere Antwort ein.