Проблемы Snow Leopard Python 2.6 с запуском PIL

Я установил libjpeg и PIL, но когда я пытаюсь сохранить изображение JPG, я всегда получаю эту ошибку:

ImportError: Модуль _imaging C не установлен

Любая помощь высоко ценится!

Я попытался импортировать _imaging с интерпретатором Python, чтобы увидеть, что не так, и получил следующее:

    >>> import _imaging
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/_imaging.so, 2): Symbol not found: _jpeg_resync_to_restart
  Referenced from: /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/_imaging.so
  Expected in: dynamic lookup

person resopollution    schedule 05.10.2009    source источник


Ответы (4)


Я только что столкнулся с этим на SL, и проблема, скорее всего, в том, что ваш libjpeg был собран без соответствующей архитектуры. Предполагая, что вы используете MacPorts, запустите file /opt/local/lib/libjpeg.dylib. Правильный способ — собрать все с MacPorts как +universal, см. Универсальные двоичные файлы в MacPorts в связи с зависимостями PIL.

person Tim Hatch    schedule 04.11.2009
comment
спасибо, я думаю, что вы правы, я проверю это и проверю - person resopollution; 11.11.2009

Многие из этих ошибок возникают при компиляции из исходного кода, когда вы ранее установили инструменты Python из fink или портов. Например, ошибка _jpeg_resync_to_restart может произойти, если у вас есть оставшиеся файлы libjpeg в /opt/local/lib. Попробуй это:

cd /opt/local/lib
sudo rm *jpeg*

Затем перекомпилируйте libjpeg (начиная с make clean), затем перекомпилируйте PIL (начиная с rm -Rf build).

После этого import _imaging должно заработать. Во всяком случае, сделал для меня.

person shacker    schedule 20.05.2010
comment
Это сработало для меня, однако у меня также были конфликты с установщиком пакетов fink, который устанавливает файлы в /sw. Я также нашел полезным следующий ответ: stackoverflow.com/questions/8404956/ - person Alexander Marquardt; 31.01.2013

Изменить: спасибо за добавленное сообщение об ошибке. Очевидно, это проблема с jpeglib на Snow Leopard. Вы пробовали это?

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

person Lennart Regebro    schedule 05.10.2009
comment
Я перешел по этой ссылке до точки, и я все еще получаю эту ошибку :( - кажется, что бы я ни пытался, я не могу заставить это работать, уже пробовал несколько источников в Google. - person resopollution; 05.10.2009
comment
Я также установил libjpeg7, libjpeg6 (я не удалял ни одну версию - может быть, поэтому?). - person resopollution; 05.10.2009
comment
Как вы установили эти библиотеки и в какое место? Скорее всего, это местоположение не находится в пути поиска динамической загрузки. Попробуйте запустить otool -L /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/_imaging.so - person Ned Deily; 05.10.2009
comment
@resopollution: Хорошо, у меня нет Snow Leopard, так что я больше не помогу. :) - person Lennart Regebro; 05.10.2009
comment
Возможно, вам придется переустановить PIL после установки libjpeg. Я запускаю python и PIL на снежном барсе без проблем. Сначала я установил libjpeg7 для чего-то другого (думаю, libgd). - person Markus; 05.10.2009
comment
Да, конечно, вам нужно даже перекомпилировать его, поэтому вы должны удалить каталог сборки из исходного кода PIL и выполнить переустановку. Насколько я знаю, процесс сборки не заметит, что библиотека была обновлена. - person Lennart Regebro; 05.10.2009
comment
Все перепробовал, все равно не идет :( - person resopollution; 05.10.2009
comment
одна и та же ошибка каждый раз, когда символ не найден: _jpeg_resync_to_restart кажется, что у других людей есть проблема, но нет решения - person resopollution; 05.10.2009

У меня тоже была эта проблема. Оказалось, что это связано с изменением, которое я внес в свой .bash_profile (вынуждая использовать ggc-4.0) при попытке исправить проблему установки MySQLdb.

http://www.brambraakman.com/blog/comments/installing_pil_in_snow_leopard_jpeg_resync_to_restart_error/

person Bram Braakman    schedule 17.10.2009