Wie installiere ich MySQLdb (Python Datenzugriffsbibliothek zu MySQL) unter Mac OS X?

Ich bin ein Python-Neuling, aber ich habe gerade einen Tag damit verbracht, wie man MySQLdb richtig funktioniert, und das Universum nach Google enthält zahlreiche Hinweise darauf, was ein PITA es ist, und eine unangemessene Anzahl von Führern, die zu sein scheinen veraltet. Angesichts der Tatsache, dass diese Seite beabsichtigt ist, diese Art von Problemen zu beheben, und ich weiß, dass ich einen Hinweis auf die Lösung in Zukunft benötigen werde, werde ich die Frage stellen, meine Antwort geben und sehen, was sonst schwimmt Oberfläche.

Also die Frage ist, wie man MySQLdb auf Mac OS X?

  • Installieren von MySQLdb für Python 2.6 auf OSX
  • Kann nicht mysql-python in crontab Mac OS importieren
  • Mit mehreren Python-Installationen, wie funktioniert MacPorts, welche zur Installation von MySQLdb?
  • Python-Import MySQLdb-Fehler - Mac 10.6
  • Wie installiere ich MySql-python-1.2.3 unter Mac OS 10.8
  • Cc1: error: nicht erkannte Befehlszeilenoption "-Wno-null-conversion" bei der Installation von python-mysql auf mac 10.7.5
  • Probleme beim Einrichten des MySQLdb-Moduls
  • Python und mysql auf mac os x
  • 12 Solutions collect form web for “Wie installiere ich MySQLdb (Python Datenzugriffsbibliothek zu MySQL) unter Mac OS X?”

    Hier ist die Geschichte meiner wandernden Erfahrung mit diesem Problem. Würde es lieben, es zu sehen oder zu verallgemeinern, wenn du eine bessere Erfahrung in der Frage hast … ein bisschen von diesem SO Magie anwenden.

    Anmerkung: Die Kommentare im nächsten Absatz gelten für Snow Leopard, aber nicht für Lion, die 64-Bit-MySQL zu erfordern scheint

    Zuerst sagt der Autor (noch?) Von MySQLdb hier, dass eines der schädlichsten Probleme ist, dass OS X mit einer 32-Bit-Version von Python installiert wird, aber die meisten durchschnittlichen Joes (ich eingeschlossen) vermutlich springen, um die 64-Bit-Version zu installieren Von MySQL. Schlechtes Verschieben … entfernen Sie die 64-Bit-Version, wenn Sie es installiert haben (Anweisungen zu dieser fiddly Aufgabe sind auf SO hier vorhanden ), dann laden Sie und installieren Sie die 32-Bit-Version (Paket hier )

    Es gibt zahlreiche Schritt-für-Schritt zum Erstellen und Installieren der MySQLdb-Bibliotheken. Sie haben oft subtile Unterschiede. Das schien mir am beliebtesten und stellte die Arbeitslösung zur Verfügung. Ich habe es mit ein paar Bearbeitungen unten reproduziert

    Schritt 0: Bevor ich anfange, gehe ich davon aus, dass du MySQL, Python und GCC auf dem Mac installiert hast.

    Schritt 1: Laden Sie die neueste MySQL für Python Adapter von SourceForge.

    Schritt 2: Entpacken Sie Ihr heruntergeladenes Paket:

    tar xzvf MySQL-python-1.2.2.tar.gz 

    Schritt 3: Im Inneren des Ordners reinigen Sie das Paket:

     sudo python setup.py clean 

    PAARE VON EXTRA SCHRITTE, (von diesem Kommentar )

    Schritt 3b: Entferne alles unter deinem MySQL-python-1.2.2 / build / * Verzeichnis – vertraue nicht dem "python setup.py clean", um es für dich zu tun

    Schritt 3c: Entfernen Sie das Ei unter Benutzer / $ USER / .python-Eier

    Schritt 4: Ursprünglich benötigte Bearbeitung von _mysql.c, ist aber jetzt nicht mehr notwendig. MySQLdb Community scheint diesen Fehler jetzt behoben zu haben.

    Schritt 5: Erstellen Sie eine symbolische Verknüpfung unter lib, um auf ein Unterverzeichnis mit dem Namen mysql zu verweisen. Hier ist es bei der Kompilierung.

     sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql 

    Schritt 6: Bearbeiten Sie die setup_posix.py und ändern Sie die folgenden

    Mysql_config.path = "mysql_config"

    nach

    Mysql_config.path = "/ usr / local / mysql / bin / mysql_config"

    Schritt 7: Im selben Verzeichnis, dein Paket neu aufbauen (ignoriere die Warnungen, die mit ihm kommt)

     sudo python setup.py build 

    Schritt 8: Installiere das Paket und du bist fertig.

     sudo python setup.py install 

    Schritt 9: Testen Sie, ob es funktioniert. Es funktioniert, wenn man MySQLdb importieren kann.

     python 

    >>> import MySQLdb

    Schritt 10: Wenn beim Versuch, Sie zu importieren, ein Fehler beklagt, der beschwert, dass die Library not loaded: libmysqlclient.18.dylib endet mit: Reason: image not found Sie müssen einen zusätzlichen Symlink erstellen, der ist:

     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 zu import MySQLdb .

    Ein letzter Schluckauf aber ist, dass, wenn Sie Python aus dem Build-Verzeichnis starten, erhalten Sie diese Fehlermeldung:

    /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-Pakete / 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 ziemlich einfach zu Google, aber um Ihnen die Mühe zu sparen, werden Sie hier oben kommen (oder vielleicht nicht … nicht eine besonders zukunftssichere URL) und herauszufinden, dass Sie cd .. aus dem Build-Verzeichnis und den Fehler benötigen Sollte verschwinden

    Als ich an die Spitze schrieb, würde ich gerne diese Antwort verallgemeinern sehen, da es zahlreiche andere spezifische Erfahrungen dieses schrecklichen Problems gibt. Bearbeiten Sie weg, oder geben Sie Ihre eigene, bessere Antwort.

    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 nehme an, Sie haben XCode, seine Kommandozeilen-Tools , Python und MySQL installiert.

    1. PIP installieren:

       sudo easy_install pip 
    2. Bearbeiten ~ / .profile: (Möglicherweise nicht notwendig in Mac OS X 10.10)

       nano ~/.profile 

      Kopiere und füge die folgenden zwei Zeilen ein

       export PATH=/usr/local/mysql/bin:$PATH export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/ 

      Speichern und schließen. Nachher führt der folgende Befehl aus:

       source ~/.profile 
    3. Installiere MySQLdb

       sudo pip install MySQL-python 

      Um zu testen, ob alles gut funktioniert, probier einfach mal aus

       python -c "import MySQLdb" 

    Es hat mich wie ein Charme für mich gearbeitet. Ich hoffe, es hilft.

    Wenn Sie auf einen Fehler in Bezug auf eine fehlende Bibliothek stoßen: Bibliothek nicht geladen: libmysqlclient.18.dylib dann müssen Sie es wie folgt auf /usr/lib verknüpfen :

     sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 

    Installiere mysql und python über Macports Die Portiers haben alle Schwierigkeiten gemacht.

     sudo port install py26-mysql sudo port install mysql5-server 

    Sollte installieren, was Sie brauchen (Siehe Stapelüberlauf für Kommentare re mysql server )

    Wenn Sie nur eine Verbindung zu mysql herstellen müssen und keinen Server ausführen, dann ist die erste Zeile ausreichend.

    Macports jetzt (Anfang 2013) liefert binäre Downloads für gemeinsame Kombinationen von OS eine ausführbare Architektur, für andere (und wenn Sie es anfordern) wird es aus der Quelle zu bauen.

    Im Allgemeinen Macports (oder Fink) helfen, wenn es komplexe Bibliotheken usw., die installiert werden müssen.

    Python nur Code und wenn einfache C-Abhängigkeiten über setuptools etc. eingerichtet werden können, aber es beginnt komplex zu werden, wenn man die beiden mischt.

    Hier ist noch ein weiterer Schritt, den ich durchmachen musste, nachdem ich einen Fehler beim Abschließen von Schritt 9 erhalten hatte:

     ImportError: dlopen(/Users/rick/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 

    Referenz: Danke! http://ageekstory.blogspot.com/2011_04_01_archive.html

    Pip installieren:

     sudo easy_install pip 

    Installiere brauen:

     ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" 

    Installiere mysql:

     brew install mysql 

    Installiere MySQLdb

     sudo pip install MySQL-python 

    Wenn Sie Kompilierungsprobleme haben, versuchen Sie, die Datei ~ / .profile wie in einer der Antworten zu bearbeiten.

    Als statend auf Installieren von MySQL-python auf mac :

     pip uninstall MySQL-python brew install mysql pip install MySQL-python 

    Dann teste es:

     python -c "import MySQLdb" 

    Habe gerade dieses Problem (wieder!) Nach dem Erhalten einer neuen Lion Box.

    Beste Lösung habe ich gefunden (immer noch nicht 100% optimal, aber funktioniert):

    • Stellen Sie sicher, dass Sie 64-Bit-Python haben. Wie kann man überprüfen, ob eine Bibliothek 32bit / 64bit auf Mac OS X gebaut ist?

    • Installiere easy_install, wenn du es nicht hast. http://packages.python.org/distribute/easy_install.html

    • Installieren Sie GCC, wenn Sie es nicht haben.

    Sie können es durch das Herunterladen von XCode / Dev Tools von Apple – das ist ein großer Download –

    … aber stattdessen empfehle ich diesen Github, der was du brauchst (und nicht XCode hat): https://github.com/kennethreitz/osx-gcc-installer

    Ich habe ihre vorgefertigte PKG für Löwen 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 eine einfache Route) http://dev.mysql.com/downloads/mysql/

    • Pfade wie folgt setzen:

      Export PATH = $ PATH: / usr / local / mysql-XXXX

      Exportieren DYLD_LIBRARY_PATH = / usr / local / mysql / lib /

      Export ARCHFLAGS = '- Bogen x86_64'

    BEACHTEN SIE, DASS:

    1 in mysql-XXXX oben, XXX ist die spezifische Version, die du heruntergeladen hast. (Wahrscheinlich / usr / local / mysql / würde auch arbeiten, da dies höchstwahrscheinlich ein Alias ​​zum selben ist, aber ich werde nicht vorgeben, dein Setup zu kennen)

    2 Ich habe gesehen, dass es vorgeschlagen, dass ARCHFLAGS auf '-arch i386 -arch x86_64' gesetzt werden, aber die Angabe nur x86_64 schien besser für mich zu arbeiten. (Ich kann an einige Gründe dafür denken, aber sie sind nicht unbedingt relevant).

    • Installiere das Tier!

      Easy_install MySQL-python

    • LETZTER SCHRITT:

    Füge das DYLD_LIBRARY_PATH dauerhaft hinzu!

    Sie können es Ihrem bash_profile oder ähnlich hinzufügen. Dies war der fehlende Schritt für mich, ohne den mein System weiterhin auf verschiedene Fehler auf der Suche nach _mysql.so und so weiter bestehen.

    Exportieren DYLD_LIBRARY_PATH = / usr / local / mysql / lib /

    @ Richard-boardman, bemerkte nur Ihre Soft-Link-Lösung, die in der Tat das gleiche tun kann, was meine PATH-Lösung tut … Leute, was auch immer für Sie am besten funktioniert.

    Beste Referenz: http://activeintelligence.org/blog/archive/mysql-python-aka-mysqldb-on-osx-lion/

    Oder einfacher Versuch:

    Sudo easy_install MySQL-python

    Wenn es einen Fehler gibt

    EnvironmentError: mysql_config nicht gefunden

    Führen Sie einfach das aus

    Export PATH = $ PATH: / usr / local / mysql / bin

    Sie könnten versuchen, mit der rein-python pymysql :

     sudo easy_install pymysql 

    (Oder pip wenn du es installiert hast.) Dann füge dieses hinzu, bevor du import MySQLdb in deinem Code import MySQLdb :

     try: import pymysql pymysql.install_as_MySQLdb() except ImportError: pass 

    Wenn Sie 64-Bit-MySQL verwenden, mit ARCHFLAGS, um Ihre CPU-Architektur zu spezifizieren, während der Aufbau von MySQL-Python-Bibliotheken würde den Trick tun:

     ARCHFLAGS='-arch x86_64' python setup.py build ARCHFLAGS='-arch x86_64' python setup.py install 
     export PATH=$PATH:/usr/local/mysql/bin/ 

    Sollte das Problem für Sie beheben, da das System die Datei mysql_config nicht finden kann.

    Auf Macos Sierra diese Arbeit für mich, wo Python wird von Anaconda verwaltet:

    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:

    Python 2.7.13 | Continuum Analytics, Inc. | (Standard, Dec 20 2016, 23:05:08) [GCC 4.2.1 Kompatibler Apple LLVM 6.0 (clang-600.0.57)] auf Darwin Typ "Hilfe", "Copyright", "Credits" oder "Lizenz" für mehr Information. Anaconda wird Ihnen von Continuum Analytics gebracht. Bitte schau mal aus: http://continuum.io/thanks und https://anaconda.org

    >>> von sqlalchemy import *

    >>> dbengine = create_engine ('mysql: // ….')

    Python ist die beste Programmiersprache der Welt.