Niestety w tej chwili tak naprawdę nie ma trywialnego rozwiązania. Jeśli potrzebujesz używać MySQL z Pythonem, najprostszym i najbardziej niezawodnym rozwiązaniem w OS X jest zainstalowanie wszystkiego — Pythona, MySQLdb, wszelkich innych wymaganych pakietów Pythona innych firm, bibliotek klienckich MySQL oraz, jeśli to konieczne, bibliotek i narzędzi serwerowych MySQL - za pomocą systemu zarządzania pakietami, takiego jak MacPorts . Próba zainstalowania różnych komponentów z różnych źródeł często powoduje problemy z niezgodnymi plikami wykonywalnymi i bibliotekami:32-bitowe vs 64-bitowe, różne ABI (10.3 vs 10.6) itp.
Dla systemu z Xcode i systemem podstawowym MacPorts zainstalowany, możesz zbudować i zainstalować wszystko jednym poleceniem:
sudo port install py27-mysql
Jeśli potrzebujesz również serwera MySQL:
sudo port install py27-mysql mysql5-server
Wszystkie pliki wykonywalne zainstalowane w MacPorts zostaną domyślnie zainstalowane w /opt/local
, więc wystarczy uruchomić z tego miejsca:
/opt/local/bin/python2.7
Aby ułatwić użytkownikom korzystanie z MacPorts, powinieneś móc użyć MacPorts do zbudowania zestawu niezbędnych portów jako archiwów binarnych i skonfigurować skrypt do zainstalowania podstawowego systemu MacPorts, a następnie gotowych pakietów. Kilka informacji na ten temat znajdziesz w przewodniku po MacPorts tutaj
. Jednak wiele z nich jest nieaktualnych dla MacPorts 2.0.x. Dopóki Przewodnik nie zostanie zaktualizowany, informacje zaczynają się tutaj . Najbezpieczniejszym podejściem byłoby zbudowanie innego zestawu pakietów dla każdej obsługiwanej wersji OS X. To może możliwe jest zbudowanie jednego zgodnego w górę zestawu na najstarszym potrzebnym systemie:powiedzmy, zbuduj pakiety na 10.5, które będą działać również na systemach 10.6 i 10.7. Aby zapobiec zakłóceniom w instalacjach MacPorts klientów, możesz także zbudować podstawowy system MacPorts ze źródła i zmienić katalog główny instalacji na coś innego niż /opt/local
.
Bardziej idiomatycznym podejściem w OS X byłoby użycie py2app aby utworzyć pakiet aplikacji, który zawiera biblioteki Python i klienta MySQL. Nie wiem, czy komuś się to udało.
Kolejna sugestia:jeśli tak naprawdę nie potrzebujesz zdalnego serwera, rozważ użycie SQLite. Obsługa SQLite jest zawarty w Bibliotece Standardowej Pythona.