Update für Benutzer von Python3:
Sie können einfach conda install mysqlclient
die Bibliotheken installieren, die für die Verwendung von MySQLdb erforderlich sind, wie es derzeit vorhanden ist. Die folgende SO-Frage war ein hilfreicher Hinweis: Python 3 ImportError: Kein Modul mit dem Namen 'ConfigParser' . Durch die Installation von mysqlclient werden mysqlclient, mysql-connector und llvmdev installiert (zumindest wurden diese 3 Bibliotheken auf meinem Computer installiert).
Hier ist die Geschichte meiner Erfahrung mit diesem Problem. Würde es gerne bearbeitet oder verallgemeinert sehen, wenn Sie eine bessere Erfahrung 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, nicht jedoch auf Lion, für das anscheinend 64-Bit-MySQL erforderlich ist
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 installiert wird, aber die meisten durchschnittlichen Jungs (ich selbst eingeschlossen) springen wahrscheinlich, um die 64-Bit-Version zu installieren von MySQL. Schlechter Zug ... entfernen Sie die 64-Bit-Version, wenn Sie sie installiert haben (Anweisungen zu dieser fummeligen Aufgabe finden Sie auf SO hier ), und laden Sie dann die 32-Bit-Version herunter und installieren Sie sie (Paket hier ).
Es gibt zahlreiche schrittweise Anleitungen zum Erstellen und Installieren der MySQLdb-Bibliotheken. Sie haben oft subtile Unterschiede. Dies schien mir am beliebtesten zu sein und lieferte die funktionierende Lösung. Ich habe es mit ein paar Änderungen unten reproduziert
Schritt 0:
Bevor ich anfange, gehe ich davon aus, dass Sie MySQL, Python und GCC auf dem Mac installiert haben.
Schritt 1:
Laden Sie den neuesten MySQL for Python-Adapter von SourceForge herunter .
Schritt 2:
Extrahieren Sie Ihr heruntergeladenes Paket:
tar xzvf MySQL-python-1.2.2.tar.gz
Schritt 3:
Reinigen Sie das Paket im Ordner:
sudo python setup.py clean
PAAR ZUSÄTZLICHER SCHRITTE (aus diesem Kommentar )
Schritt 3b:
Entfernen Sie alles aus 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 Benutzer / $ USER / .python-Eier
Schritt 4:
Ursprünglich musste _mysql.c bearbeitet werden, ist jetzt aber NICHT MEHR ERFORDERLICH. Die MySQLdb-Community scheint diesen Fehler jetzt behoben zu haben.
Schritt 5:
Erstellen Sie unter lib einen symbolischen Link, der auf ein Unterverzeichnis namens mysql verweist. Hier wird beim Kompilieren gesucht.
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
Schritt 6:
Bearbeiten Sie die Datei 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 Ihr Paket im selben Verzeichnis 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 Importversuch eine Fehlermeldung erhalten, die sich über Folgendes beschwert Library not loaded: libmysqlclient.18.dylib
: Reason: image not found
Sie müssen einen zusätzlichen Symlink erstellen:
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 letzter Schluckauf ist jedoch, dass beim Starten von Python aus dem Build-Verzeichnis folgende Fehlermeldung angezeigt wird:
/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
Dies ist für Google ziemlich einfach, aber um Ihnen die Mühe zu ersparen, werden Sie hier landen (oder vielleicht auch nicht ... keine besonders zukunftssichere URL) und herausfinden, dass Sie dies tun müssencd ..
Build-Verzeichnis verlassen müssen und der Fehler verschwinden sollte.
Wie ich oben schrieb, würde ich diese Antwort gerne verallgemeinern, da es zahlreiche andere spezifische Erfahrungen mit diesem schrecklichen Problem gibt. Bearbeiten Sie weg oder geben Sie Ihre eigene, bessere Antwort.