Ответ:
Проблема в том, что определенный символ в структуре DirectoryService был окончательно удален в Lion (в 10.2 он устарел).libdb2.dylib, установленный DB2 Express-C, пытается вызвать эту функцию и вызывает ошибку при импорте любого модуля python.
Чтобы обойти это, вам нужно сконфигурировать свою среду для связи со старымверсия платформы DirectoryService.Для этого вам понадобится установить Snow Leopard (он может работать со старыми версиями, но я не тестировал его, и вам понадобится новейшая версия, которую вы можете достать, конечно, это не Lion).Здесь вы найдете установленную платформу DirectoryService:
/System/Library/Frameworks/DirectoryService.framework/
Скопируйте этот каталог из установки Snow Leopard в любое место, где вы хотите установить Lion.В этом примере я скопировал каталог DirectoryService.framework в каталог с именем OldFrameworks в ~:
~/OldFrameworks/DirectoryService.framework/
Задайте в переменной среды $DYLD_LIBRARY_PATH
путь к фактической библиотеке:
export DYLD_LIBRARY_PATH=${HOME}/OldFrameworks/DirectoryService.framework/Versions/Current/:${DYLD_LIBRARY_PATH}
Любая среда, в которой вы выполняете вышеуказанную команду, будет сконфигурирована, чтобы позволить python импортировать ibm_db или PyDB2.Добавьте его в свой .profile, .bashrc и т. Д. Для постоянной настройки вашей среды.Помните, однако, что это означает, что все команды , выполняемые в сконфигурированной среде, будут пытаться соединиться с версией SnowSeopard из DirectoryService.Это может привести к ошибкам с другими инструментами (я еще не сталкивался с какими-либо).Было бы целесообразно устанавливать DYLD_LIBRARY_PATH только в оболочках, где это необходимо.