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

mysql-python:costruire un _mysql.so completamente autonomo su Mac OS X?

Non importa, l'ho scoperto io stesso dopo aver scavato un po' di più. È piuttosto semplice, in realtà; Registrerò la soluzione qui nel caso qualcun altro ne avesse bisogno:

  1. Ottieni il tarball sorgente di MySQL da mysql.com (non il tarball binario specifico della piattaforma)

  2. Decomprimilo, esegui ./configure con qualsiasi opzione si adatti ai tuoi scopi, ma avrai bisogno di --enable-static . Per sicurezza, ho incluso --disable-shared , anche se potrebbe non essere strettamente necessario. Ho usato quanto segue, il tuo potrebbe differire su altri conteggi:

    (Per quanto riguarda i parametri del set di caratteri e di confronto qui:potrebbero essere completamente non necessari in questo caso d'uso, poiché in seguito eliminerò MySQL, ma poiché tutte le connessioni client utilizzano alcuni set di caratteri/confronti, sto coprendo le mie basi UTF-8 -wise nel caso in cui il charset/collation predefinito utilizzato da MySQLdb sia influenzato da come _mysql.so è compilato -- uomini più saggi di me potrebbero voler confermare questo in un modo o nell'altro.)

  3. Ottieni l'ultimo tarball sorgente di mysql-python da http://pypi.python.org/pypi /MySQL-python

  4. Decomprimilo e in site.cfg imposta static = True e mysql_config = /usr/local/mysql-src/bin/mysql_config (o qualunque percorso tu abbia scelto durante configure ).

  5. Esegui python setup.py build . Al termine della compilazione possono comparire alcuni errori relativi all'architettura, ma possono essere ignorati.

  6. Esegui sudo python setup.by install . Questo crea un .egg nei tuoi site-packages directory e lo aggiunge al file easy_install.pth.

  7. Hai finito! Ora puoi eliminare tutte le tracce di MySQL così come i sorgenti mysql-python. L'uovo può essere copiato così com'è su altri Mac che eseguono la stessa versione di OS X. Lo sto copiando felicemente in vari ambienti virtuali creati con virtualenv mentre parliamo.

Questo ha funzionato su 10.5, lo testerò presto su 10.6 e, se è necessario fare qualcosa in modo diverso, riportare i risultati qui.