Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да инсталирам MySQLdb (библиотека за достъп до данни на Python към MySQL) на Mac OS X?

Актуализация за тези, които използват Python3: Можете просто да използвате conda install mysqlclient за да инсталирате библиотеките, необходими за използване на MySQLdb, както съществува в момента. Следният въпрос SO беше полезна улика:Python 3 ImportError:Няма модул с име „ConfigParser“ . Инсталирането на mysqlclient ще инсталира mysqlclient, mysql-connector и llvmdev (поне инсталира тези 3 библиотеки на моята машина).

Ето историята на моя безсмислен опит с този проблем. Ще се радвам да го видя редактиран или обобщен, ако имате по-добър опит с проблема... приложете малко от тази ТАКА магия.

Забележка:Коментарите в следващия параграф се прилагат за Snow Leopard, но не и за Lion, който изглежда изисква 64-битов MySQL

Първо, авторът (все още?) на MySQLdb казва тук че един от най-пагубните проблеми е, че OS X идва инсталирана с 32-битова версия на Python, но повечето обикновени играчи (включително и аз) вероятно скачат да инсталират 64-битовата версия на MySQL. Лош ход... премахнете 64-битовата версия, ако сте я инсталирали (инструкции за тази трудна задача са налични на SO тук ), след което изтеглете и инсталирайте 32-битовата версия (пакет тук )

Има множество стъпка по стъпка как да изградите и инсталирате MySQLdb библиотеки. Те често имат фини разлики. Това ми се стори най-популярен и осигури работното решение. Възпроизвеждах го с няколко редакции по-долу

Стъпка 0: Преди да започна, предполагам, че имате MySQL, Python и GCC инсталиран на Mac.

Стъпка 1: Изтеглете най-новия MySQL за Python адаптер от SourceForge.

Стъпка 2: Разархивирайте изтегления пакет:

tar xzvf MySQL-python-1.2.2.tar.gz

Стъпка 3: Вътре в папката почистете пакета:

sudo python setup.py clean

ДВОЙКА ДОПЪЛНИТЕЛНИ СТЪПКИ, (от този коментар )

Стъпка 3б: Премахнете всичко във вашата MySQL-python-1.2.2/build/* директория - не се доверявайте на "python setup.py clean" да го направи вместо вас

Стъпка 3в: Премахнете яйцето под Users/$USER/.python-eggs

Стъпка 4: Първоначално се изискваше редактиране на _mysql.c, но сега ВЕЧЕ НЕ Е НЕОБХОДИМО. Изглежда общността на MySQLdb вече е поправила този бъг.

Стъпка 5: Създайте символна връзка под lib, която да сочи към поддиректория, наречена mysql. Това е мястото, където той търси по време на компилацията.

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

Стъпка 6: Редактирайте setup_posix.py и променете следното

mysql_config.path ="mysql_config"

до

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

Стъпка 7: В същата директория изградете отново вашия пакет (игнорирайте предупрежденията, които идват с него)

sudo python setup.py build

Стъпка 8: Инсталирайте пакета и сте готови.

sudo python setup.py install

Стъпка 9: Тествайте дали работи. Работи, ако можете да импортирате MySQLdb.

python

>>> import MySQLdb

Стъпка 10: Ако при опит за импортиране получите грешка, която се оплаква, че Library not loaded: libmysqlclient.18.dylib завършваща с:Reason: image not found трябва да създадете една допълнителна символна връзка, която е:

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

След това трябва да можете да import MySQLdb без никакви грешки.

Един последен проблем обаче е, че ако стартирате Python от директорията за изграждане, ще получите тази грешка:

/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3:UserWarning:Модул _mysql вече е импортиран от /Library/2/Python site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.pyc, но XXXX/MySQL-python-1.2.3c1 се добавя към sys.path

Това е доста лесно за Google, но за да ви спести неприятностите, ще стигнете тук (или може би не... не е особено надежден URL адрес) и разберете, че трябва да cd .. извън директорията за компилиране и грешката трябва да изчезне.

Както написах в горната част, бих искал да видя този отговор обобщен, тъй като има много други специфични преживявания с този ужасен проблем. Редактирайте или дайте свой собствен, по-добър отговор.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намерете и заменете текст в цялата таблица с помощта на MySQL заявка

  2. Codeigniter - множество връзки към база данни

  3. Как да предоставите отдалечен достъп до една MySQL база данни

  4. node.js mysql грешка:ECONNREFUSED

  5. Как да проверите вашите MySQL архиви с ClusterControl