В настоящее время я пишу небольшое приложение на Python, в которое встроены cherrypy и django с использованием py2app. Это работало хорошо, пока я не попытался включить pyobjc в свой проект, поскольку моему приложению требовался небольшой графический интерфейс (который состоит из небольшого значка в верхней строке меню + раскрывающегося меню).
Я могу без проблем запустить свой скрипт на Python (я использую Python 2.6 с macports), но я не могу запустить пакет приложений, сгенерированный py2app. Появится диалоговое окно со следующим сообщением:
ImportError:
dlopen(/Users/denis/tlon/standalone/mac/dist/django_cherry.app/Contents/Resources/lib/python2.6/lib-dynload/CoreFoundation/_inlines.so, 2): no suitable image found.
Did find:
/Users/denis/tlon/standalone/mac/dist/django_cherry.app/Contents/Resources/lib/python2.6/lib-dynload/CoreFoundation/_inlines.so: mach-o, but wrong architecture
Я сделал быстро:
sudo port -u install py26-pyobjc +universal
но macports почему-то пытается собрать openssl, с которым каждый раз не получается компилировать. Похоже, проблема связана с zLib — вот что появляется в логах:
:info:build ld: warning: in /opt/local/lib/libz.dylib, file is not of required architecture
... И вот вывод file /opt/local/lib/libz.dylib
:
/opt/local/lib/libz.dylib: Mach-O universal binary with 2 architectures
/opt/local/lib/libz.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
/opt/local/lib/libz.dylib (for architecture i386): Mach-O dynamically linked shared library i386
Мне все кажется неправильным.
Я немного застрял здесь. Я даже не понимаю, какое отношение openssl имеет к pyObjc, но, похоже, я никуда не денусь, если не успею его скомпилировать. Macports действительно иногда отстой :/
EDIT Мне удалось решить проблему с Macports, но не с py2app:/