Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zainstalować MySQLdb (biblioteka dostępu do danych Pythona do MySQL) na Mac OS X?

Aktualizacja dla osób używających Pythona3: Możesz po prostu użyć conda install mysqlclient zainstalować biblioteki wymagane do korzystania z MySQLdb w obecnej postaci. Pomocną wskazówką było następujące pytanie SO:Python 3 ImportError:Brak modułu o nazwie „ConfigParser” . Zainstalowanie mysqlclient spowoduje zainstalowanie mysqlclient, mysql-connector i llvmdev (przynajmniej te 3 biblioteki zostały zainstalowane na moim komputerze).

Oto opowieść o moim chaotycznym doświadczeniu z tym problemem. Bardzo chciałbym zobaczyć to edytowane lub uogólnione, jeśli masz lepsze doświadczenia z problemem... zastosuj trochę tej magii SO.

Uwaga:komentarze w następnym akapicie dotyczą systemu Snow Leopard, ale nie Lion, który wydaje się wymagać 64-bitowego MySQL

Po pierwsze, autor (nadal?) MySQLdb mówi tutaj że jednym z najbardziej zgubnych problemów jest to, że OS X jest instalowany z 32-bitową wersją Pythona, ale większość przeciętnych użytkowników (w tym ja) prawdopodobnie przeskakuje, aby zainstalować 64-bitową wersję MySQL. Zły ruch... usuń wersję 64-bitową, jeśli ją zainstalowałeś (instrukcje dotyczące tego skomplikowanego zadania są dostępne na SO tutaj ), a następnie pobierz i zainstaluj wersję 32-bitową (pakiet tutaj )

Istnieje wiele szczegółowych instrukcji budowania i instalowania bibliotek MySQLdb. Często mają subtelne różnice. To wydał mi się najbardziej popularny i zapewnił działające rozwiązanie. Odtworzyłem go z kilkoma poprawkami poniżej

Krok 0: Zanim zacznę, zakładam, że masz MySQL, Python i GCC zainstalowany na Macu.

Krok 1: Pobierz najnowszy adapter MySQL dla Pythona z SourceForge.

Krok 2: Rozpakuj pobrany pakiet:

tar xzvf MySQL-python-1.2.2.tar.gz

Krok 3: Wewnątrz folderu wyczyść pakiet:

sudo python setup.py clean

PARA DODATKOWYCH KROKÓW (z tego komentarza )

Krok 3b: Usuń wszystko z katalogu MySQL-python-1.2.2/build/* -- nie ufaj, że "python setup.py clean" zrobi to za Ciebie

Krok 3c: Usuń jajko w sekcji Users/$USER/.python-eggs

Krok 4: Pierwotnie wymagał edycji _mysql.c, ale teraz NIE JEST KONIECZNY. Wygląda na to, że społeczność MySQLdb naprawiła teraz ten błąd.

Krok 5: Utwórz dowiązanie symboliczne w lib, aby wskazać podkatalog o nazwie mysql. To jest miejsce, w którym szuka podczas kompilacji.

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

Krok 6: Edytuj plik setup_posix.py i zmień następujące

mysql_config.path ="mysql_config"

do

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

Krok 7: W tym samym katalogu odbuduj pakiet (zignoruj ​​ostrzeżenia z nim związane)

sudo python setup.py build

Krok 8: Zainstaluj pakiet i gotowe.

sudo python setup.py install

Krok 9: Sprawdź, czy to działa. Działa, jeśli możesz zaimportować MySQLdb.

python

>>> import MySQLdb

Krok 10: Jeśli przy próbie importu pojawi się błąd narzekający, że Library not loaded: libmysqlclient.18.dylib kończące się na:Reason: image not found musisz utworzyć jedno dodatkowe dowiązanie symboliczne, które jest:

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

Powinieneś wtedy być w stanie import MySQLdb bez żadnych błędów.

Ostatnia czkawka polega na tym, że jeśli uruchomisz Pythona z katalogu kompilacji, pojawi się następujący błąd:

/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3:Ostrzeżenie użytkownika:Moduł _mysql został już zaimportowany z /Library/Python/2.5/ site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.pyc, ale XXXX/MySQL-python-1.2.3c1 jest dodawany do sys.path

Jest to dość łatwe dla Google, ale aby zaoszczędzić Ci kłopotów, skończysz tutaj (a może nie... niezbyt przyszłościowy adres URL) i zorientuj się, że musisz cd .. poza katalogiem kompilacji i błąd powinien zniknąć.

Jak napisałem na górze, chciałbym, aby ta odpowiedź była uogólniona, ponieważ istnieje wiele innych konkretnych doświadczeń związanych z tym okropnym problemem. Zmień lub podaj własną, lepszą odpowiedź.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Usuwanie ograniczenia Unique z tabeli MySQL

  2. SQL SERVER 2016 – Porównanie planów wykonania

  3. Składnia bazy danych SQL ALTER – wymienione przez DBMS

  4. Jak przesłać obrazy do bazy danych MySQL za pomocą kodu PHP?

  5. Instrukcja przypadku w MySQL