2009-12-28 10 views
2

Я с радостью использовал Django и MySQL в разработке на существующем компьютере под управлением OS X 10.4 Tiger и создал аналогичную среду в 10.5 Leopard на новом 64-битном MacBook с рабочими MySQL и Python 2.6.4 ,MySQL-python 1.2.3 и OS X 10.5: 64- или 32-разрядный?

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

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

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

  • отказаться, удалить 64-bit MySQL установки (? Тщательные методы, пожалуйста) и использовать 32-битную MySQL образ диска вместо;
  • повторно установить Python в 64-битном режиме от тарболла,
    --with-universal archs-64-bit и --enable-universalsdk=
    как detailed in Python.org's 2.6 news.

Так что мои вопросы для тех, кто столкнулся с этой проблемой являются:

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

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

ответ

3

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

Решение: removethe 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 из downloads page и set it up as required.

Удалить MySQL-питона с:

easy_install -m MySQL-python 

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

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

проверить:

>>> import MySQLdb 

Для меня, это решило проблему.Не нужно редактировать _mysql.c (as advised для MySQL-python 1.2.2) или беспорядок с любыми другими настройками.

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

Но note this:

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

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

Наконец, MacPython 2.7 installer теперь покрывает 64 бит. Смотрите это сообщение для differences between running 64 and/or 32 bit.

1

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

  1. Установить Xcode
  2. Установка 64 бит MySQL
  3. Установить последнее питон
  4. Установите easy_install

    Скачать и установить соответствующую яйцу: http://pypi.python.org/pypi/setuptools, а затем запустить скрипт (в моем случай ...)
    Судо SH Setuptools-0.6c11-py2.6.egg

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

    экспорт PATH = $ PATH:/USR/местные/MySQL/бен/
    Sudo easy_install MySQL-питон

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

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

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

    Судо пер -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

+0

Благодаря Bryan - полезно. Python 2.7 имеет 64-битный установщик http://www.python.org/getit/, поэтому, когда я в конце концов перейду на Snow Leopard, я, вероятно, начну с этого :-) –