Более простая настройка для записи в MySQL на OSX с Python - PullRequest
1 голос
/ 30 декабря 2011

У меня есть скрипт Python, который пишет в базу данных MySQL, используя mysql-python .Это хорошо для Linux и Windows, но в OSX эта библиотека слишком сложна для моих клиентов для установки.

Требуется редактирование файлов конфигурации, символических ссылок каталогов, установка gcc, xcode, ...Потрясающий процесс для нетехнических пользователей.

Итак, есть ли более практичный способ поддержки записи в MySQL на OSX?

Некоторые потенциальные альтернативы:

1 Ответ

2 голосов
/ 30 декабря 2011

К сожалению, на данный момент нет тривиального решения. Если вам нужно использовать 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.

...