MySQL-python 1.2.3 и OS X 10.5:64- или 32-битная?
-
21-09-2019 - |
Вопрос
Я успешно использовал 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.
Итак, мои вопросы ко всем, кто столкнулся с этой проблемой:
- Стоит ли заморачиваться с установкой 64-битного Python на OS X 10.5?
- Если да, то (наивный и ленивый вопрос!) как объединяются два обязательных аргумента?
- Если я просто пропущу 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-разрядную установку), вот некоторые ссылки, использованные при исследовании этого вопроса:
- Энди Дастман, разработчик MySQLdb
- Джанго на Леопарде
- Блог Джима Би:установка свежей версии Python 2.6.4
- Результаты поиска для setuptools ARCHFLAGS 32 бит - MarkMail
- MySQL-Python и Apple OSX 10.5 (Leopard)
- Установка django / python / mysql на OS X | Davidmichaelthompson
«Если вы пойдете 64, то вам придется перекомпилировать каждую вещь, которая взаимодействует с Python, MySQL и Apache, чтобы работать в качестве 64 -битной программы Arch»
И для всех, кто знает Snow Leopard:
Наконец, Установщик MacPython 2.7 теперь охватывает 64 бит.Смотрите этот пост для различия между запуском 64- и/или 32-битной версии.
Другие советы
Я обнаружил, что следующие шаги (с Snow Leopard) позволили мне использовать 64-битный MySQL и 64-битный Python (на Macbook Pro начала 2011 года).
- Установить Xcode
- Установите 64-битную MySQL
- Установить последнюю версию Python
Установить easy_install
Загрузите и установите соответствующее яйцо с: http://pypi.python.org/pypi/setuptools а затем запустить сценарий оболочки (в моем случае…)
sudo sh setuptools-0.6c11-py2.6.eggУстановите библиотеку Python MySQLdb.
экспортировать PATH=$PATH:/usr/local/mysql/bin/
sudo easy_install MySQL-pythonИзмените ~/.profile, включив в него следующие строки:
экспорт VERSIONER_PYTHON_PREFER_32_BIT = нет
экспорт VERSIONER_PYTHON_PREFER_64_BIT=даСделайте libmysqlclient.18.dylib доступным.
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib