Как установить MySQL и пакет Python MySQL в OS X Leopard? Или как мне узнать о том, как стать веб-разработчиком, использующим OS X?

Я новичок в Mac OS X, и я почти готов выбросить свой новенький MacBook Pro в окно. Все руководства по настройке среды разработки Django на Mac OS X Леопардовый коварно ошибочны. Все они пропускают один шаг, или предполагают, что вы настроили что-то в одну сторону, или просто предполагают, что я знаю одну вещь, которой не должен.

Я очень хорошо знаком с тем, как настроить среду в Ubuntu / Linux, и единственная часть, на которой я застрял с OS X, - это установка MySQL, автоматический запуск и установка привязок Python MySQL. Я думаю, что моя ошибка заключалась в использовании мешанины инструментов, которые я не совсем понимаю; Я использовал fink для установки MySQL и его библиотек разработки, а затем попытался создать привязки Python-MySQL из исходного кода (но они не собираются).

ОБНОВИТЬ: Я установил двоичный пакет MySQL из http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg, и у меня запущен сервер MySQL (можно получить доступ с помощью администратора). Версия MySQL, которую я получил из порта, была хламом, я не мог ее запустить вообще.

Я изменил исходный код пакета Python-MySQL в соответствии с выбранным мной ответом, но у меня все еще есть ошибки компиляции, которые я перечислил в комментариях. Я смог исправить это, добавив / usr / local / mysql / bin / к моему пути в моем файле "~ / .profile". " ПУТЬ = / usr / local / mysql / bin: $ ПУТЬ "

Спасибо за помощь, я очень осторожно относился к редактированию исходного кода, так как эта операция была очень простой в Ubuntu, но я с большим желанием попробую это в будущем. Мне действительно не хватает команды Ubuntu «apt-get»; иногда это делает жизнь очень легкой и простой. У меня уже есть образ Ubuntu VMware, работающий на моем Mac, поэтому я всегда могу использовать его в качестве запасного варианта (плюс он более точно соответствует моим производственным машинам, поэтому должен быть хорошей тестовой средой для отладки производственных проблем).

Не могли бы вы включить ошибки, возникающие при попытке скомпилировать MySQL-python?

James Brady 28.12.2008 01:35

это слишком общий вопрос, не так ли?

user3850 28.12.2008 06:59
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
6
2
2 612
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Вы можете использовать BSD-подобный (?) http://macports.org, который обеспечивает самостоятельную установку в стиле Gentoo широкого спектра программного обеспечения, которое вы ожидаете найти в дистрибутиве Linux.

В качестве альтернативы вы можете просто запустить Ubuntu на виртуальной машине в качестве этапа тестирования.

Честно говоря, это просто

# port install <pkgname>

Python mysqldb packge в финке, но он находится в нестабильном дереве. Просто включить нестабильное дерево, и вы сможете его установить.

Или, если вы хотите иметь два альтернативных менеджера пакетов, они также находятся в MacPorts.

У меня также были проблемы в прошлый раз, когда я должен был это сделать, и в итоге я выбрал версию fink и сэкономил много головной боли.

Ответ принят как подходящий

Установка MySQL и MySQL-dev прошла гладко? Можете ли вы запустить MySQL, подключиться к нему и так далее? /usr/local/mysql/include содержит много файлов заголовков? (У меня там 46 заголовочных файлов для справки).

Если это так, MySQL должен быть в порядке. Однако для компиляции MySQL-python все еще требуется несколько ручных шагов.

Этот - достойное руководство: я включил основные шаги ниже.


  1. Загрузите Исходный код MySQL-python (v1.2.2 на момент написания: все последующие инструкции относятся к этой версии)

    $ tar xzf MySQL-python-1.2.2.tar.gz && cd MySQL-python-1.2.2
    
  2. Отредактируйте _mysql.c: удалите строки 37-39 и измените строки 481-482. Вот разница:

    37,39d36
    < #ifndef uint
    < #define uint unsigned int
    < #endif
    484,485c481,482
    <         uint port = MYSQL_PORT;
    <         uint client_flag = 0;
    ---
    >         unsigned int port = MYSQL_PORT;
    >         unsigned int client_flag = 0;
    
  3. Свяжите библиотеки там, где их ожидает MySQL-python:

    $ sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
    
  4. В каталоге MySQL-python-1.2.2 перестройте пакет:

    $ sudo python setup.py build
    

    Примечание: Вы получите предупреждение, игнорируйте его.

  5. Установите пакет:

    $ sudo python setup.py install
    

Что касается запуска MySQL, есть инструкции здесь по запуску его как службы. Лично я просто бегаю

sudo mysqld_safe 

вручную, установив фон с помощью ^Z и bg, как только я введу свой пароль.

Я все еще получаю ошибки компиляции: sh: mysql_config: команда не найдена Traceback (последний вызов последним): файл "setup.py", строка 16, в метаданных <module>, options = get_config () File "/ Users / michael / src /MySQL-python-1.2.2/setup_posix.py ", строка 43, в get_config libs = mysql_config (" libs_r ")

MikeN 29.12.2008 00:09

Файл «/Users/michael/src/MySQL-python-1.2.2/setup_posix.py», строка 24, в mysql_config поднять EnvironmentError, «% s не найден»% mysql_config.path EnvironmentError: mysql_config not found

MikeN 29.12.2008 00:10

хорошо, исправлены указанные выше синтаксические ошибки. Мне нужно было обновить переменную среды PATH, чтобы включить путь к mysql_config.

MikeN 29.12.2008 00:27

Обратите внимание, что Python по умолчанию на Leopard 32-разрядный, поэтому используйте 32-разрядный установщик MySQL (x86), а не 64-разрядный (x86_64). Или MySQLdb вообще не будет связываться. Альтернатива - заставить 64-битный питон работать в OS X, но это еще одна неприятность ...

Pieter 06.01.2009 17:13

Предполагая, что это просто среда разработки, вы можете попробовать использовать SQLite 3 в качестве своей базы данных. Пробег может варьироваться в зависимости от того, насколько низкий уровень вам нужно получить с базой данных для вашего конкретного приложения.

Я поместил пошаговое руководство в сообщение в блоге, которое может помочь: Установка Django с MySQL в Mac OS X.

Если вы пользователь Mac, установите MacPorts. Практически любое приложение Linux / Unix доступно через «порт». Это просто и удобно.

Установите MacPorts. Запустите port install mysql. У меня это сработало!

Другие вопросы по теме