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

Configurazione più semplice per la scrittura su MySQL su OSX con Python

Sfortunatamente, al momento non esiste davvero una soluzione banale. Se è necessario utilizzare MySQL con Python, la soluzione più semplice e affidabile su OS X è installare tutto:Python, MySQLdb, qualsiasi altro pacchetto Python di terze parti necessario, librerie client MySQL e, se necessario, librerie e utilità del server MySQL - utilizzando un sistema di gestione dei pacchetti, come MacPorts . Il tentativo di installare i vari componenti da fonti diverse incontra spesso problemi con eseguibili e librerie costruiti per incompatibilità:32 bit vs 64 bit, ABI diversi (10.3 vs 10.6) ecc.

Per un sistema con Xcode e il sistema di base MacPorts installato, puoi compilare e installare tutto con un comando:

sudo port install py27-mysql

Se hai bisogno anche del server MySQL:

sudo port install py27-mysql mysql5-server

Tutti gli eseguibili installati da MacPorts verranno installati per impostazione predefinita in /opt/local , quindi devi solo eseguire le cose da lì:

/opt/local/bin/python2.7

Per rendere più facile per i tuoi utenti, dovresti essere in grado di utilizzare MacPorts per creare il set di porte necessarie come archivi binari e impostare uno script per installare il sistema di base MacPorts e quindi i tuoi pacchetti predefiniti. Ci sono alcune informazioni al riguardo nella Guida di MacPorts qui . Tuttavia, gran parte di ciò non è aggiornato per MacPorts 2.0.x. Fino all'aggiornamento della Guida, ci sono informazioni che iniziano qui . L'approccio più sicuro sarebbe quello di creare un set diverso di pacchetti per ogni versione di OS X supportata. potrebbe essere possibile creare un set compatibile con le versioni successive sul sistema più vecchio necessario:ad esempio, creare pacchetti su 10.5 che funzionino anche su sistemi 10.6 e 10.7. Per evitare interferenze con le installazioni MacPorts dei clienti, puoi anche creare il sistema di base MacPorts dal sorgente e cambiare la root di installazione in qualcosa di diverso da /opt/local .

Un approccio più idiomatico su OS X sarebbe usare py2app per creare un bundle di applicazioni che includa Python e le librerie client MySQL. Non so se qualcuno l'ha fatto con successo.

Un altro suggerimento:se non hai davvero bisogno di un server remoto, considera invece l'utilizzo di SQLite. Supporto per SQLite è incluso nella libreria standard di Python.