Leider gibt es im Moment keine wirklich triviale Lösung. Wenn Sie MySQL mit Python verwenden müssen, besteht die einfachste und zuverlässigste Lösung unter OS X darin, alles zu installieren – Python, MySQLdb, alle anderen erforderlichen Python-Pakete von Drittanbietern, MySQL-Clientbibliotheken und, falls erforderlich, MySQL-Serverbibliotheken und -Dienstprogramme - Verwenden eines Paketverwaltungssystems wie MacPorts . Beim Versuch, die verschiedenen Komponenten aus unterschiedlichen Quellen zu installieren, treten häufig Probleme mit inkompatibilitätsbedingten ausführbaren Dateien und Bibliotheken auf:32-Bit vs. 64-Bit, unterschiedliche ABIs (10.3 vs. 10.6) usw.
Für ein System mit Xcode und dem MacPorts-Basissystem installiert haben, können Sie alles mit einem Befehl erstellen und installieren:
sudo port install py27-mysql
Falls Sie auch den MySQL-Server benötigen:
sudo port install py27-mysql mysql5-server
Alle von MacPorts installierten ausführbaren Dateien werden standardmäßig in /opt/local
installiert , also müssen Sie die Dinge nur von dort aus ausführen:
/opt/local/bin/python2.7
Um es Ihren Benutzern zu erleichtern, sollten Sie in der Lage sein, mit MacPorts die erforderlichen Ports als Binärarchive zu erstellen und ein Skript einzurichten, um das MacPorts-Basissystem und dann Ihre vorgefertigten Pakete zu installieren. Es gibt einige Informationen dazu im MacPorts Guide hier
. Vieles davon ist jedoch für MacPorts 2.0.x veraltet. Bis zur Aktualisierung des Leitfadens finden Sie Informationen ab hier . Der sicherste Ansatz wäre, für jede unterstützte OS X-Version einen anderen Paketsatz zu erstellen. Es vielleicht möglich sein, einen aufwärtskompatiblen Satz auf dem ältesten benötigten System zu erstellen:Sagen wir, Pakete auf 10.5 zu erstellen, die auch auf 10.6- und 10.7-Systemen funktionieren würden. Um Interferenzen mit Kunden-MacPorts-Installationen zu vermeiden, könnten Sie auch das MacPorts-Basissystem aus den Quellen erstellen und das Installationsstammverzeichnis in etwas anderes als /opt/local
ändern .
Ein idiomatischerer Ansatz für OS X wäre die Verwendung von py2app um ein Anwendungspaket zu erstellen, das Python und die MySQL-Clientbibliotheken enthält. Ich weiß nicht, ob das jemand erfolgreich gemacht hat.
Ein weiterer Vorschlag:Wenn Sie nicht wirklich einen Remote-Server benötigen, sollten Sie stattdessen SQLite verwenden. Unterstützung für SQLite ist in der Python-Standardbibliothek enthalten.