Оновлення для тих, хто використовує 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:
Перш ніж почати, я припускаю, що у вас на сервері Mac встановлені MySQL, Python та GCC .
Крок 1.
Завантажте найновіший адаптер MySQL для Python з SourceForge.
Крок 2:
Витягніть завантажений пакет:
tar xzvf MySQL-python-1.2.2.tar.gz
Крок 3:
Всередині папки очистіть пакет:
sudo python setup.py clean
КУПЛИ ДІЯЛЬНИХ КРОКІВ (з цього коментаря )
Крок 3b:
Видаліть усе з каталогу MySQL-python-1.2.2 / build / * - не довіряйте "python setup.py clean", щоб зробити це за вас
Крок 3c:
Видаліть яйце під Users / $ USER / .python-яйця
Крок 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/Python/2.5/ site-пакети / MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg / _mysql.pyc, але в sys.path додається XXXX / MySQL-python-1.2.3c1
Google це досить просто, але, щоб врятувати вас від проблеми, ви опинитесь тут (а може, і не ... не особливо надійною URL-адресою) і зрозумієте, що вам потрібно cd ..
вийти з каталогу збирання, і помилка повинна зникнути.
Як я писав вгорі, я хотів би бачити цю відповідь узагальненою, оскільки там є численні інші конкретні переживання цієї жахливої проблеми. Відредагуйте або надайте свою, кращу відповідь.