Установка MySQLdb на Snow Leopard - PullRequest
2 голосов
/ 20 июля 2010

У меня возникают всевозможные проблемы при попытке установить MySQLdb (1.2.2) на снежном барсе. Я использую Python 2.5.1 и MySQL 5.1 32bit.

Python и MySQL работают просто отлично.

Я также установил django 1.2.1, хотя я не думаю, что это так уж важно, но хотел дать представление о стеке, который я пытаюсь установить. Я использую python 2.5.x, поскольку мой веб-хостинг имеет только эту версию в качестве опции, и я хочу быть как можно ближе к моей рабочей среде.

в любом случае ...

После изучения многих существующих статей и учебных пособий, в которых упоминается изменение _mysql.c, setup_posix.py и т. Д., Я все еще сталкиваюсь с проблемами.

Вот мой след стека:

xxxxxxx-mbp: MySQL-python-1.2.2 xxxxxxx $ sudo ARCHFLAGS = "- arch x86_64" python setup.py build бегущая сборка работает build_py создание сборки создание build / lib.macosx-10.3-i386-2.5 копирование _mysql_exceptions.py -> build / lib.macosx-10.3-i386-2.5 создание сборки / lib.macosx-10.3-i386-2.5 / MySQLdb копирование MySQLdb / init .py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb копирование MySQLdb / converters.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb копирование MySQLdb / connections.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb копирование MySQLdb / cursors.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb копирование MySQLdb / release.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb копирование MySQLdb / times.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb создание build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants копирование MySQLdb / constants / init .py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants копирование MySQLdb / constants / CR.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants копирование MySQLdb / constants / FIELD_TYPE.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants копирование MySQLdb / constants / ER.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants копирование MySQLdb / constants / FLAG.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants копирование MySQLdb / constants / REFRESH.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants копирование MySQLdb / constants / CLIENT.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants работает build_ext построение расширения _mysql создание сборки / temp.macosx-10.3-i386-2.5 gcc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -O3 - Dversion_info = (1,2,2, 'final', 0) -D__version __ = 1.2.2 -I / usr / local / mysql-5.1.48-osx10.6-x86 / include -I / Library / Frameworks / Python. framework / Версии / 2.5 / include / python2.5 -c _mysql.c -o build / temp.macosx-10.3-i386-2.5 / _mysql.o -g -Os -arch i386 -fno-common -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSD -ONIGN_CLRED -ONIGNB_SRED -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL В файле, включенном в /Developer/SDKs/MacOSX10.4u.sdk/usr/include/wchar.h:112, из /Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/unicodeobject.h:118, из /Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/Python.h:83, из pymemcompat.h: 10, от _mysql.c: 29: /Developer/SDKs/MacOSX10.4u.sdk/usr/include/stdarg.h:4:25: ошибка: stdarg.h: нет такого файла или каталога В файле из _mysql.c: 35: /usr/local/mysql-5.1.48-osx10.6-x86/include/my_config.h:1062:1: предупреждение: "HAVE_WCSCOLL" переопределено В файле, включенном в /Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/Python.h:8, из pymemcompat.h: 10, от _mysql.c: 29: /Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/pyconfig.h:724:1: предупреждение: это местоположение предыдущего определения ошибка: команда 'gcc' не выполнена с состоянием выхода 1

У кого-нибудь есть идеи?

Ответы [ 3 ]

1 голос
/ 12 февраля 2012

Довольно поздно для первоначального вопроса, но в случае, если другие, такие как я, сталкиваются с тайной пропавшего stdarg.h, см. Ниже.Я использую MacOS X 10.7.3, MySQL 5.5.20, Python 2.7.2, MySQL-python-1.2.3.

Мое сообщение об ошибке:

/Developer/SDKs/MacOSX10.6.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory

Следующий блогсообщение спасло меня: http://packetcloud.net/2009/09/22/installing-mysql-python-module-for-python-262-on-snow-leopard-using-xcode/

Подводя итог бита ключа:

Открыть /Developer/SDKs/MacOSX10.6.sdk/usr/include/stdarg.h

Замените строку:

#include_next <stdarg.h>

На:

#include_next </Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stdarg.h>

Тогда все будет работать гладко:

> sudo ARCHFLAGS='-arch x86_64' python setup.py build
> sudo ARCHFLAGS='-arch x86_64' python setup.py install
0 голосов
/ 20 июля 2010

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

Я перешел на postgres.Это прекрасно работает с django на снежном барсе, с одной незначительной проблемой.По некоторым причинам идентификаторы auto_inc pk не присваиваются некоторым моделям.Я решил эту проблему путем случайного назначения идентификатора из большого случайного диапазона и использования уникального обозначения столбца для предотвращения столкновений.

Мой рабочий сервер - linux.Mysql и postgres прекрасно работают на нем.

На самом деле, многие на канале #django irc рекомендовали запускать виртуальный экземпляр linux на Mac, чтобы обойти мои проблемы с установкой mysql на нем.

0 голосов
/ 20 июля 2010

Я обычно устанавливаю такие пакеты с MacPorts.Это программное обеспечение для управления пакетами, которое обрабатывает все загрузки, настройки и установки для вас.Это похоже на emerge на gentoo или apt-get на debian.

Убедитесь, что у вас установлен Xcode и установите macports .После того, как вы установили это, запустите терминал и установите mysql, набрав:

$ sudo port install mysql5-server
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...