После покупки нового ноутбука я столкнулся с проблемой установки на OS X Lion библиотеки для доступа к MySQL для языка python. До этого эта проблема не возникала видимо из-за того, что система у меня обновлялась с 10.6 и библиотека была собрана и установлена ещё на старой системе.
В этот же раз после сборки и установки, при попытке импортировать MySQLdb выпадала такая ошибка:
>>> import MySQLdb
/Library/Python/2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg/_mysql.py:3: UserWarning: Module _mysql was already imported from /Library/Python/2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg/_mysql.pyc, but /Users/jhaddad/Downloads/MySQL-python-1.2.3 is being added to sys.path
Traceback (most recent call last):
File ““, line 1, in
File “MySQLdb/__init__.py”, line 19, in
import _mysql
File “build/bdist.macosx-10.7-intel/egg/_mysql.py”, line 7, in
File “build/bdist.macosx-10.7-intel/egg/_mysql.py”, line 6, in __bootstrap__
ImportError: dlopen(/var/root/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
Referenced from: /var/root/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so
Reason: image not found
Оказалось, что победить её очень просто. Достаточно только сделать символьную ссылку на файл `libmysqlclient.18.dylib`, который система не может найти самостоятельно:
После обвновления до Снежного Барса у меня перестал работать питоновский модуль для доступа с MySQL MySQLdb. Также куда-то пропала сама MySQL. Оказалось, что скомпилировать модуль под снежным барсом просто так не получается. Привожу короткую инструкцию.
Установите Xcode с диска Snow Leopard. При установке поставьте галочку для добавления совместимости с 10.4
Далее немного терминальной магии:
tar zxvf MySQL-python-1.2.3c1.tar.gz
cd MySQL-python-1.2.3c1
export CC="gcc-4.0"
export CXX="g++-4.0"
python setup.py build
sudo python setup.py install
Вся хитрость тут в двух строчках, начинающихся со слова export. Без них ничего не работает.
Проверить работоспособность можно так:
python
Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39)
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>>
Если не появилось никаких ошибок, значит у вас всё получилось.
В стандартную поставку «Леопарда» включен веб-сервер apache2 и php. Однако, php по умолчанию выключен.
Включаем php
Откройте терминал
Отредактируйте файл /etc/apache2/httpd.conf любым текстовым редактором. Например, это можно сделать коммандой sudo vim /etc/apache2/httpd.conf. Вас попросят ввести пароль для доступа к этому файлу.
Найдите в файле строчку LoadModule php5_module и раскомментируйте её удалив значёк # в начале строки.
Сохраните файл
Установка MySQL
Поддержка MySQL в php включена, поэтому нужно просто скачать дистрибутив MySQL с сайта производителя и установить.
Теперь нужно указать php точный путь к сокету для общения с MySQL. В терминале наберите следующее:
cd /etc/
sudo cp php.ini.default php.ini
sudo vim php.ini
Найдите в открывшемся файле строчку со словами mysql.default_socket и измените её так, чтобы она выглядела так:
mysql.default_socket = /tmp/mysql.sock
Теперь откройте System Prefrences -> Sharing и включите (или выключите, а затем включите) Web Sharing для того, чтобы перечитать изменённые файлы настроек.