sql >> Database teknologi >  >> RDS >> Mysql

Hvordan installeres MySQLdb (Python-dataadgangsbibliotek til MySQL) på Mac OS X?

Opdatering for dem, der bruger Python3: Du kan blot bruge conda install mysqlclient at installere de biblioteker, der kræves for at bruge MySQLdb, som den eksisterer i øjeblikket. Følgende SO-spørgsmål var et nyttigt fingerpeg:Python 3 ImportError:Intet modul med navnet 'ConfigParser' . Installation af mysqlclient vil installere mysqlclient, mysql-connector og llvmdev (i det mindste installerede den disse 3 biblioteker på min maskine).

Her er fortællingen om min travle oplevelse med dette problem. Ville elske at se det redigeret eller generaliseret, hvis du har bedre erfaring med problemet... anvend lidt af den SÅ magi.

Bemærk:Kommentarer i næste afsnit anvendes på Snow Leopard, men ikke på Lion, som ser ud til at kræve 64-bit MySQL

For det første siger forfatteren (stadig?) af MySQLdb her at et af de mest skadelige problemer er, at OS X kommer installeret med en 32 bit version af Python, men de fleste gennemsnitlige joes (inklusive mig selv) hopper nok for at installere 64 bit versionen af ​​MySQL. Dårligt træk... fjern 64 bit versionen, hvis du har installeret den (instruktioner til denne besværlige opgave er tilgængelige på SO her ), download og installer derefter 32 bit versionen (pakke her )

Der er adskillige trin-for-trin til, hvordan man bygger og installerer MySQLdb-bibliotekerne. De har ofte subtile forskelle. Dette forekom mig at være den mest populære og leverede den fungerende løsning. Jeg har gengivet det med et par redigeringer nedenfor

Trin 0: Før jeg starter, går jeg ud fra, at du har MySQL, Python og GCC installeret på mac.

Trin 1: Download den seneste MySQL til Python-adapter fra SourceForge.

Trin 2: Udpak din downloadede pakke:

tar xzvf MySQL-python-1.2.2.tar.gz

Trin 3: Rens pakken inde i mappen:

sudo python setup.py clean

PAR EKSTRA TRIN, (fra denne kommentar )

Trin 3b: Fjern alt under din MySQL-python-1.2.2/build/*-mappe -- stol ikke på, at "python setup.py clean" gør det for dig

Trin 3c: Fjern ægget under Users/$USER/.python-eggs

Trin 4: Oprindeligt krævet redigering _mysql.c, men er nu IKKE LÆNGER NØDVENDIG. MySQLdb-fællesskabet ser ud til at have rettet denne fejl nu.

Trin 5: Opret et symbolsk link under lib for at pege på en undermappe kaldet mysql. Det er her, den leder efter under kompilering.

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

Trin 6: Rediger setup_posix.py og rediger følgende

mysql_config.path ="mysql_config"

til

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

Trin 7: I samme mappe skal du genopbygge din pakke (ignorer advarslerne, der følger med den)

sudo python setup.py build

Trin 8: Installer pakken, og du er færdig.

sudo python setup.py install

Trin 9: Test om det virker. Det virker, hvis du kan importere MySQLdb.

python

>>> import MySQLdb

Trin 10: Hvis du, når du forsøger at importere, modtager en fejlmeddelelse om, at Library not loaded: libmysqlclient.18.dylib slutter med:Reason: image not found du skal oprette et ekstra symbollink, som er:

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

Du skulle derefter være i stand til at import MySQLdb uden fejl.

Et sidste problem er dog, at hvis du starter Python fra build-mappen, får du denne fejl:

/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3:BrugerAdvarsel:Modulet _mysql var allerede importeret fra /Library/Python/2.5 site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.pyc, men XXXX/MySQL-python-1.2.3c1 føjes til sys.path

Det er ret nemt at Google, men for at spare dig for besværet ender du her (eller måske ikke... ikke en særlig fremtidssikret URL) og finde ud af, at du skal cd .. ud af build-mappen, og fejlen skulle forsvinde.

Som jeg skrev øverst, ville jeg elske at se dette svar generaliseret, da der er adskillige andre specifikke oplevelser af dette forfærdelige problem derude. Rediger væk, eller giv dit eget, bedre svar.



  1. Tilføj en kolonne til en tabel i SQL

  2. Laravel 5 PDOException kunne ikke finde driver

  3. JSON_VALUE() Eksempler i SQL Server (T-SQL)

  4. vise data fra SQL-database til php/html-tabel