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.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
. Sobald ich dies ausgeführt habe, wurde es wie erwartet importiert ... endlich. Wheewwww. Nur ein Fyi für diejenigen in einer ähnlichen Position.Ein schneller und einfacher Weg für Mac OS X 10.8 (Mountain Lion), 10.9 (Mavericks), 10.10 (Yosemite) und 10.11 (El Capitan):
Ich gehe davon aus, dass Sie XCode, seine Befehlszeilentools , Python und MySQL installiert haben.
PIP installieren:
Bearbeiten ~ / .profile: (In Mac OS X 10.10 möglicherweise nicht erforderlich)
Kopieren Sie die folgenden zwei Zeilen und fügen Sie sie ein
Speichern und schließen. Nachworte führen den folgenden Befehl aus:
Installieren Sie MySQLdb
Um zu testen, ob alles gut funktioniert, versuchen Sie es einfach
Es hat wie ein Zauber für mich funktioniert. Ich hoffe, es hilft.
Wenn Sie einen Fehler in Bezug auf eine fehlende Bibliothek feststellen : Bibliothek nicht geladen: libmysqlclient.18.dylib , müssen Sie einen Symlink erstellen , um Folgendes zu erreichen
/usr/lib
:quelle
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Befehl von unten ausführen .export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/
brew install mysql
musste ich den 2. Schritt nicht durchlaufen.Installieren Sie MySQL und Python über Macports. Die Träger haben die ganze schwierige Arbeit erledigt.
sollte installieren, was Sie brauchen. ( Kommentare zum MySQL-Server finden Sie unter Stapelüberlauf. )
Wenn Sie nur eine Verbindung zu MySQL herstellen und keinen Server ausführen müssen, ist die erste Zeile ausreichend.
Macports now (Anfang 2013) bietet binäre Downloads für gängige Betriebssystemkombinationen und eine ausführbare Architektur, für andere (und wenn Sie dies anfordern) wird es aus dem Quellcode erstellt.
Im Allgemeinen helfen Macports (oder Fink), wenn komplexe Bibliotheken usw. installiert werden müssen.
Nur Python-Code und wenn einfache C-Abhängigkeiten über Setuptools usw. eingerichtet werden können, wird es jedoch komplex, wenn Sie beide mischen.
quelle
Installieren Sie pip:
Gebräu installieren:
Installieren Sie MySQL:
Installieren Sie MySQLdb
Wenn Sie Kompilierungsprobleme haben, versuchen Sie, die Datei ~ / .profile wie in einer der Antworten hier zu bearbeiten.
quelle
pip install mysqlclient
stattdessen. Funktioniert!Hier ist ein weiterer Schritt, den ich durchlaufen musste, nachdem ich beim Abschluss von Schritt 9 einen Fehler erhalten hatte:
Hinweis: Danke! http://ageekstory.blogspot.com/2011_04_01_archive.html
quelle
Wie unter Installieren von MySQL-Python auf einem Mac angegeben :
Dann testen Sie es:
quelle
Hatte gerade dieses Problem (wieder!), Nachdem ich eine neue Lion-Box bekommen hatte.
Beste Lösung, die ich gefunden habe (immer noch nicht 100% optimal, aber funktioniert):
Stellen Sie sicher, dass Sie 64-Bit-Python haben. Wie kann ich überprüfen, ob eine Bibliothek unter Mac OS X 32-Bit / 64-Bit ist?
Installieren Sie easy_install, wenn Sie es nicht haben. http://packages.python.org/distribute/easy_install.html
Installieren Sie GCC, wenn Sie es nicht haben.
Sie können es erhalten, indem Sie XCode / Dev Tools von Apple herunterladen - dies ist ein großer Download -
... aber stattdessen empfehle ich diesen Github, der das hat, was Sie brauchen (und keinen XCode hat): https://github.com/kennethreitz/osx-gcc-installer
Ich habe ihre vorgefertigte PKG für Lion heruntergeladen, https://github.com/downloads/kennethreitz/osx-gcc-installer/GCC-10.7-v2.pkg
Stellen Sie sicher, dass Sie eine 64-BIT-Version von MYSQL Community heruntergeladen haben. (Die DMG-Installation ist ein einfacher Weg) http://dev.mysql.com/downloads/mysql/
Stellen Sie die Pfade wie folgt ein:
export PATH = $ PATH: / usr / local / mysql-XXXX
export DYLD_LIBRARY_PATH = / usr / local / mysql / lib /
export ARCHFLAGS = '- arch x86_64'
BEACHTEN SIE, DASS:
Installiere das Biest!
easy_install MySQL-Python
LETZTER SCHRITT:
Fügen Sie dauerhaft den DYLD_LIBRARY_PATH hinzu!
Sie können es Ihrem bash_profile oder ähnlichem hinzufügen. Dies war der fehlende Schritt für mich, ohne den mein System weiterhin auf verschiedenen Fehlern bestand, die _mysql.so und so weiter fanden.
export DYLD_LIBRARY_PATH = / usr / local / mysql / lib /
@ richard-boardman, habe gerade Ihre Softlink-Lösung bemerkt, die möglicherweise genau das Gleiche tut wie meine PATH-Lösung ... Leute, was auch immer für Sie am besten funktioniert.
Beste Referenz: http://activeintelligence.org/blog/archive/mysql-python-aka-mysqldb-on-osx-lion/
quelle
Sie könnten versuchen, die reine Python zu verwenden
pymysql
:(Oder verwenden
pip
Sie, wenn Sie es installiert haben.) Fügen Sie dies dann vor Ihnenimport MySQLdb
in Ihren Code ein:quelle
Oder einfach versuchen:
Wenn es einen Fehler wie unten gibt:
, dann führen Sie dies einfach aus
quelle
Wenn Sie 64-Bit-MySQL verwenden, reicht es aus, ARCHFLAGS zu verwenden, um Ihre CPU-Architektur beim Erstellen von MySQL-Python-Bibliotheken anzugeben:
quelle
sollte das Problem für Sie beheben, da das System die Datei mysql_config nicht finden kann.
quelle
Auf MacOS Sierra funktioniert diese Arbeit für mich, wo Python von Anaconda verwaltet wird:
anaconda search -t conda mysql-python
anaconda show CEFCA/mysql-python
conda install --channel https://conda.anaconda.org/CEFCA mysql-python
Die mit SQLAlchemy zu verwenden:
quelle
Diese Antwort ist ein Update, ca. November 2019. Keine der gängigen Pip-Installationen bietet Ihnen ein funktionierendes Setup für MacOS 10.13 (und wahrscheinlich auch für andere Versionen). Hier ist eine einfache Möglichkeit, wie ich Dinge zum Laufen bringen kann:
Wenn Sie Hilfe bei der Installation von Brew benötigen, besuchen Sie diese Website: https://brew.sh/
quelle
Ich bin auf dieses Problem
mysqlclient
gestoßen und habe festgestellt, dass ich wissen muss, wo openssl zu finden ist, und OSX verbirgt dies standardmäßig.Suchen Sie openssl mit
brew info openssl
und fügen Sie dann den Pfad zu Ihremopenssl
Bin zu Ihrem PFAD hinzu:Ich empfehle, dies zu Ihrer .zshrc oder .bashrc hinzuzufügen, damit Sie sich in Zukunft keine Sorgen mehr machen müssen. Fügen Sie dann mit dieser exportierten Variablen (die möglicherweise zum Schließen und erneuten Öffnen Ihrer Bash-Sitzung führt) zwei weitere env-Variablen hinzu:
Dann endlich laufen:
und es sollte gut installieren.
Quelle: https://medium.com/@shandou/pipenv-install-mysqlclient-on-macosx-7c253b0112f2
quelle