У вас 32-битная или 64-битная проблема. Похоже, вы используете Python 2.6, установленный из MacPorts, и, очевидно, это была не универсальная (32-битная / 64-битная) сборка. Либо ваше приложение работает как 64-битное, а Python - только 32-битное, или наоборот. Вы можете проверить, используя file
:
cd /opt/local/Library/Frameworks/Python.framework/Versions/2.6/
cd lib/python2.6/lib-dynload/
file itertools.so
itertools.so: Mach-O universal binary with 2 architectures
itertools.so (for architecture x86_64): Mach-O 64-bit bundle x86_64
itertools.so (for architecture i386): Mach-O bundle i386
Самым простым исправлением может быть переустановка MacPorts Python и дополнительных пакетов, которые вы установили, например PyObjC:
sudo port selfupdate
sudo port -u install python26 +universal ...
РЕДАКТИРОВАТЬ: Поскольку вы сообщаете, что Python является 64-битным, проблема почти наверняка связана с проблемой настройки шаблона Xcode для вашего проекта Python PyObjC. Код запуска, вероятно, загружает предоставленный Apple интерпретатор Python, который является универсальным. Вы можете проверить, добавив что-то вроде этого до import objc
:
import sys
sys.stderr.write(sys.executable)
Для MacPorts должно быть
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python
Я недостаточно знаком с подробностями использования шаблонов под Xcode, чтобы знать, что может потребоваться изменить, и я сомневаюсь, что многие люди используют их с MacPorts Python, особенно под 10.6.
Другая мысль: поддерживаемый Apple Python 2.6.1 поставляется с уже установленной версией PyObjC. Возможно, использовать его будет проще. Или не используйте Xcode и используйте py2app
или другое решение для его запуска.