Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie installiere ich MySQLdb (Python-Datenzugriffsbibliothek für MySQL) unter Mac OS X?

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.