Понижение до pyobjc 2.0 с pyobjc 2.2 - PullRequest
3 голосов
/ 12 января 2010

Я случайно установил pyobjc 2.2 с простой установкой pyobjc, и это вызывает проблемы: когда я пытаюсь импортировать его, я получаю сообщение об ошибке

Incompatible library version: _objc.so requires version 10.0.0 or later, but libxml2.2.dylib provides version 9.0.0

Я не заинтересован в том, чтобы исправить это, все, что я хочу, - это мой pyobjc 2.0 обратно. Я попытался удалить pyobjc 2.2 и переустановить python, и я попытался собрать 2.0 из ствола svn (я получаю сообщение об ошибке: не могу понять архитектуру [random filename] .out)

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

Редактировать: Python 2.6 и OSX 10.5

Ответы [ 2 ]

2 голосов
/ 13 января 2010

Если вы используете поставляемый Apple Python 2.5 на 10.5 Leopard, который поставляется со встроенным PyObjC 2.0, вероятно, самый простой способ понизить версию - это удалить версию 2.2 из каталога site-packages, /Library/Python/2.5/site-packages. Сначала запустите команду:

easy_install -m pyobjc==2.2

, который отредактирует файл easy-install.pth в этом каталоге, или вы можете отредактировать файл самостоятельно, чтобы удалить строку для PyObjC 2.2. Затем следует вернуться к версии, поставляемой Apple, которая установлена ​​в другом месте.

Если вы используете другую версию Python и самостоятельно установили PyObjC, вы все равно сможете использовать easy_install, чтобы вернуться к нему, поскольку обычно easy_install не удаляет предыдущие версии при обновлении. Попробуйте:

easy_install pyobjc==2.0

Если это не сработает, вам, возможно, придется перейти в хранилище subversion PyObjC, скачать копию ветки 2.0 и переустановить оттуда:

svn co http://svn.red-bean.com/pyobjc/branches/pyobjc-20x-branch/
1 голос
/ 14 января 2010

Я понял это. Библиотека 2.5 pyobjc находится в /System/Library/Frameworks/Python.framework/Versions/2.5/...
и команда для установки pyobjc для python 2.6 -

sudo port install py26-pyobjc2

В любом случае спасибо за помощь!

...