Вопрос

Я успешно использовал Django и MySQL при разработке на существующей машине под управлением OS X 10.4 Tiger и установил аналогичную среду в 10.5 Leopard на новом 64-битном MacBook с работающими MySQL и Python 2.6.4.

Однако теперь я хочу, чтобы они общались, easy_install MySQL-python отдал ld warningв том, что file is not of the required architecture, что побудило меня протестировать установку Python 2.4.6 (из Образ диска Mac OS X):

>>> import sys
>>> sys.maxint
2147483647

Ах.Итак, моя установка Python выглядит 32-битной и (я думаю?) не будет устанавливать MySQL-python для моего 64-битного MySQL.Существует множество хаков для MySQL-python в OS X (в основном 1.2.2), но после нескольких часов чтения я почти уверен, что они не исправят это несоответствие архитектуры.Итак, я застрял, потому что не могу решить, стоит ли:

  • сдавайся, удали 64-битный MySQL установите (подробные методы, пожалуйста?) и вместо этого используйте 32-битный образ диска MySQL;
  • переустановите Python в 64-битном режиме из архива,
    --with-universal archs-64-bit и --enable-universalsdk=
    как подробно в новостях Python.org 2.6.

Итак, мои вопросы ко всем, кто столкнулся с этой проблемой:

  1. Стоит ли заморачиваться с установкой 64-битного Python на OS X 10.5?
  2. Если да, то (наивный и ленивый вопрос!) как объединяются два обязательных аргумента?
  3. Если я просто пропущу 32-битную версию (как в моей рабочей настройке), чего мне не хватает?

Мне нужна простая установка, которую легко воспроизвести на других машинах (возможно использование студентами), поэтому я буду очень рад вашим мнениям, пожалуйста!

Это было полезно?

Решение

Я публикую это здесь на случай, если кто-нибудь найдет эту страницу и ему понадобится ответ...

Решение: удалять MySQL 64-битная установка (измените приведенное ниже значение в соответствии с номером версии MySQL):

cd /usr/local
sudo rm -rf mysql-5.1.41-osx10.5-x86_64
rm -r mysql
cd /Library/Receipts/
rm -r mysql-5.1.41-osx10.5-x86_64.pkg

Установите последнюю версию 32-битного пакета MySQL из страница загрузок и настройте его как требуется.

Удалите MySQL-python с помощью:

easy_install -m MySQL-python

Затем удалите яйцо в site-packages и убедитесь easy_install -m удалил строку пакета в easy-install.pth файл там.

Запустите MySQL, затем переустановите MySQL-python (убедитесь, что у вас установлена ​​последняя версия — 1.2.3 — на момент написания): easy_install MySQL-python

Попробуй это:

>>> import MySQLdb

Для меня это решило проблему.Нет необходимости редактировать _mysql.c (как советовали для MySQL-питон 1.2.2) или возиться с какими-либо другими настройками.

Если они вам понадобятся (если вышеуказанное не помогло или вы действительно хотите попробовать 64-разрядную установку), вот некоторые ссылки, использованные при исследовании этого вопроса:

Но обратите внимание на это:

«Если вы пойдете 64, то вам придется перекомпилировать каждую вещь, которая взаимодействует с Python, MySQL и Apache, чтобы работать в качестве 64 -битной программы Arch»

И для всех, кто знает Snow Leopard:

Наконец, Установщик MacPython 2.7 теперь охватывает 64 бит.Смотрите этот пост для различия между запуском 64- и/или 32-битной версии.

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

Я обнаружил, что следующие шаги (с Snow Leopard) позволили мне использовать 64-битный MySQL и 64-битный Python (на Macbook Pro начала 2011 года).

  1. Установить Xcode
  2. Установите 64-битную MySQL
  3. Установить последнюю версию Python
  4. Установить easy_install

    Загрузите и установите соответствующее яйцо с: http://pypi.python.org/pypi/setuptools а затем запустить сценарий оболочки (в моем случае…)
    sudo sh setuptools-0.6c11-py2.6.egg

  5. Установите библиотеку Python MySQLdb.

    экспортировать PATH=$PATH:/usr/local/mysql/bin/
    sudo easy_install MySQL-python

  6. Измените ~/.profile, включив в него следующие строки:

    экспорт VERSIONER_PYTHON_PREFER_32_BIT = нет
    экспорт VERSIONER_PYTHON_PREFER_64_BIT=да

  7. Сделайте libmysqlclient.18.dylib доступным.

    sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top