Проблемы с установкой PIL в Snow Leopard

Я выполнил эти инструкции:

http://proteus-tech.com/blog/cwt/install-pil-in-snow-leopard/

И все прошло как описано.

Однако в конце я попробовал запустить:

python selftest.py

чтобы убедиться, что все работает правильно, но я получаю:

*** The _imaging C module is not installed

Затем я запустил интерпретатор Python и попробовал:

import _imaging

и получите эту ошибку:

Traceback (последний вызов последним): файл "", строка 1, в ImportError: dlopen (/Library/Python/2.6/site-packages/PIL/_imaging.so, 2): символ не найден: _jpeg_resync_to_restart Ссылка из: / Library /Python/2.6/site-packages/PIL/_imaging.so Ожидается в: плоском пространстве имен в /Library/Python/2.6/site-packages/PIL/_imaging.so

Это мой первый Mac, поэтому извиняюсь, если я упускаю что-то очевидное, но любая помощь, которую вы могли бы оказать, была бы очень признательна.

Спасибо!


person ryan    schedule 08.12.2009    source источник


Ответы (2)


Проблема возникает из-за того, что jpeglib недоступен как часть стандартного дистрибутива MAC OS X для Leopard и Snow Leopard.

Решение следующее: - скомпилируйте lib jpeg - убедитесь, что libjpeg62.dylib доступен на вашем DYLD_LIBRARY_PATH (вы можете поместить его в такие места, как / usr / local / lib)

Полезные инструкции доступны здесь

person Shailesh Kumar    schedule 08.12.2009
comment
Спасибо. Я выполнил эти инструкции, но когда запустил: pip install effbot.org/downloads/ Imaging-1.1.6.tar.gz Я получаю: -bash: pip: command not found Что такое pip и как мне войти на свой Mac? Опять же, извинения за упрощенные вопросы (так как я все еще новичок во всем этом). - person ryan; 08.12.2009
comment
Хорошо, неважно, у меня работает пип. Еще один вопрос к вам: я перешел в / usr / local / lib и увидел там следующие файлы: libjpeg.7.dylib, libjpeg.a, libjpeg.dylib, libjpeg.la, но не libjpg62.dylib. Вы знаете, где этот файл установлен по умолчанию (или как я могу его найти и переместить в эту папку) - person ryan; 08.12.2009
comment
Раньше я использовал libjpeg62.dylib. Я думаю, что никогда не переходил на 7 версию. Файлы .so в Unix известны как файлы .dylib в мире MAC. В вашем случае это libjpeg.7.dylib, который должен быть актуальным. Я полагаю, это версия 7 версии JPEG LIB. Установка произошла в нужном месте, в / usr / local / lib. Туда он устанавливается, когда вы запускаете $ make install. Таким образом, вы можете иметь динамические библиотеки где угодно в вашей файловой системе, если эти каталоги находятся в вашей переменной среды DYLD_LIBRARY_PATH. Надеюсь это поможет. - person Shailesh Kumar; 09.12.2009

Хорошо, все заработало благодаря помощи Шайлеша. Сначала я запустил это:

otool -L /Library/Python/2.6/site-packages/PIL/_imaging.so

чтобы увидеть, где были зависимости. Я удалил эти ссылки на libjpeg, а затем перекомпилировал libjpeg и PIL (следуя инструкциям в ссылке ниже), и все заработало.

http://jetfar.com/libjpeg-and-python-imaging-pil-on-snow-leopard/

person ryan    schedule 09.12.2009