К сожалению, на данный момент нет тривиального решения. Если вам нужно использовать MySQL с Python, самое простое и надежное решение для OS X - это установить все - Python, MySQLdb, любые другие необходимые пакеты Python сторонних производителей, клиентские библиотеки MySQL и, при необходимости, серверные библиотеки и утилиты MySQL - используя систему управления пакетами, например MacPorts . Попытка установить различные компоненты из разных источников часто приводит к проблемам с исполняемыми файлами и библиотеками, созданными из-за несовместимости: 32-битные или 64-битные, различные ABI (10,3 против 10,6) и т. Д.
Для системы с установленным Xcode и базовой системой MacPorts вы можете собрать и установить все с помощью одной команды:
sudo port install py27-mysql
Если вам также нужен сервер MySQL:
sudo port install py27-mysql mysql5-server
Все установленные на MacPorts исполняемые файлы будут установлены по умолчанию в /opt/local
, поэтому вам просто нужно запустить что-то оттуда:
/opt/local/bin/python2.7
Чтобы упростить работу пользователей, вы должны иметь возможность использовать MacPorts для создания набора необходимых портов в виде двоичных архивов и настроить сценарий для установки базовой системы MacPorts, а затем предварительно подготовленных пакетов. Некоторая информация об этом содержится в Руководстве по MacPorts здесь . Однако большая часть этого устарела для MacPorts 2.0.x. До тех пор, пока руководство не будет обновлено, информация начинается с здесь . Самым безопасным подходом будет создание различного набора пакетов для каждого поддерживаемого выпуска OS X. может быть возможным для создания одного совместимого вверх набора на самой старой системе: скажем, сборки пакетов на 10.5, которые также будут работать на системах 10.6 и 10.7. Во избежание помех при установке пользовательских MacPorts вы также можете собрать базовую систему MacPorts из исходного кода и изменить корневой каталог установки на что-то отличное от /opt/local
.
Более идиоматическим подходом в OS X было бы использование py2app для создания пакета приложений, включающего Python и клиентские библиотеки MySQL. Я не знаю, сделал ли кто-нибудь это успешно.
Еще одно предложение: если вам действительно не нужен удаленный сервер, рассмотрите возможность использования SQLite. Поддержка SQLite включена в стандартную библиотеку Python.