Установка MySQLdb под Snow Leopard

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

После установки системы и переноса всех необходимых файлов я занялся установкой всего того, что простым копированием перенести нельзя. Например, я установил свежую версию интерпретатора Python 2.7 и новый Xcode 4.

Затем мне понадобилась база данных MySQL и связка (MySQLdb) для Python с ней. Опишу установку всей этой кухни, тут есть неочевидные моменты:

  • Скачивать и устанавливать нужно только 64-х битную версию MySQL.
  • Устанавливать MySQLdb с помощью easy_install или чего-то подобного смысле не имеет, т.к. будет вываливаться такая ошибка:
    Traceback (most recent call last):
      File "", line 1, in 
      File "build/bdist.macosx-10.6-intel/egg/MySQLdb/__init__.py", line 19, in 
      File "build/bdist.macosx-10.6-intel/egg/_mysql.py", line 7, in 
      File "build/bdist.macosx-10.6-intel/egg/_mysql.py", line 6, in __bootstrap__
    ImportError: dlopen(/Users/bm/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so, 2): no suitable image found.  Did find:
        /Users/bm/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.egg-tmp/_mysql.so: mach-o, but wrong architecture
  • Нужно скачать последнюю версию mysqldb
  • Дальше немного терминальной магии:

    tar xzf MySQL-python-1.2.3c1.tar.gz
    cd MySQL-python-1.2.3c1
    ARCHFLAGS='-arch x86_64' python setup.py build
    ARCHFLAGS='-arch x86_64' python setup.py install
    

После этого всё работает правильно.

  • http://twitter.com/aeron_dae Aeron

    u0412u0430u0436u043du043eu0435 u0434u043eu043fu043eu043bu043du0435u043du0438u0435:nnu0412u0435u043bu0438u043au0430 u0432u0435u0440u043eu044fu0442u043du043eu0441u0442u044c, u0447u0442u043e MySQLdb u0431u0443u0434u0435u0442 u0440u0443u0433u0430u0442u044cu0441u044f u043du0430 u0442u043e, u0447u0442u043e u043du0435 u043du0430u0445u043eu0434u0438u0442 u043au0430u043au0438u0435-u0442u043e .dylib u0431u0438u0431u043bu0438u043eu0442u0435u043au0438, u043fu043eu044du0442u043eu043cu0443 u043cu043du043eu0433u0438u043cu0438 u0440u0435u043au043eu043cu0435u043du0434u0443u0435u0442u0441u044f u0432 ~/.bash_profile u0434u043eu043fu0438u0441u044bu0432u0430u0442u044c u00abexport DYLD_LIBRARY_PATH=/usr/local/mysql/lib:, u0447u0435u0433u043e u0434u0435u043bu0430u0442u044c u043eu0447u0435u043du044c u043du0435 u0441u0442u043eu0438u0442.nu0427u0442u043eu0431u044b u0432u0441u0451 u0437u0430u0440u0430u0431u043eu0442u0430u043bu043e, u0441u0434u0435u043bu0430u0439u0442u0435 u00absudo ln -s /usr/local/mysql/lib/* /usr/lib/u00bb.