Питон с PIL и Libjpeg на леопарде - PullRequest
3 голосов
/ 30 октября 2008

У меня проблемы с получением изображений, поддерживаемых PIL - мне это выдает:

IOError: decoder jpeg not available

Я установил PIL из двоичного файла, не понимая, что мне нужен libjpeg.

Я установил libjpeg и freetype2 через fink.

Я пытался переустановить PIL, используя инструкции из http://timhatch.com/ (внизу страницы)

  • Загрузите исходный пакет PIL 1.1.6 и уже установите Инструменты разработчика
  • Патч setup.py с этим патчем, чтобы он мог найти Freetype, который у вас уже есть.

    patch -p0 < leopard_freetype2.diff

  • sudo apt-get install libjpeg, если у вас есть fink (иначе, сборка вручную и корректировка путей)

Но я все еще получаю ту же ошибку.

Я на леопардовом КПП.

Ответы [ 5 ]

1 голос
/ 30 октября 2008

У меня недавно была похожая «проблема декодера jpeg» при развертывании проекта django на коробке продукта RHEL, которая требовала PIL. Я скачал PIL и сразу запустил «python setup.py install», и был счастлив, что все работало, пока не столкнулся с проблемой. Решение: libjpeg уже был установлен в системе, поэтому я установил libjpeg-devel. Я вернулся к источнику PIL и запустил «python setup.py build», в конце которого в выводе, где он показывает, удалось ли PIL configure обнаружить поддержку jpeg, gif, freetype и т. Д. Поддержка JPEG была в порядке. После установки PIL все заработало нормально.

1 голос
/ 10 августа 2009

У меня была такая же проблема, и сообщение этого парня предоставило мне решение:

rm подкаталог PIL и файл PIL.pth в подкаталоге Imaging-1.1.6

полная информация здесь:

http://blog.tlensing.org/2008/12/04/kill-pil-%E2%80%93-the-python-imaging-library-headache/

После этого selftest.py работал нормально. Я должен также отметить, что я использую версию библиотеки jpeg для macports, и я уже указал JPEG_ROOT, чтобы указать пути include и lib в моем корне macports

0 голосов
/ 26 декабря 2010

Я придерживался этой проблемы сегодня довольно много часов. И мой совет: НЕ делайте проб и ошибок снова и снова, если только вы не можете решить проблему в первые 15 минут.

Существует несколько инструментов для диагностики проблемы:

1.Проверьте, соответствует ли архитектура jpeg lib вашей архитектуре машины:

file /usr/local/lib/libjpeg.7.dylib 

2.проверьте, действительно ли _imaging.so связан с вашим скомпилированным jpeg lib

cd ImageSrc

python setup.py build_ext -i

otool -L PIL/_imaging.so 

3. Попробуйте импортировать _imaging.so и посмотрите, в чем проблема

cd PIL

python

import _imaging

4. Наконец, попробуйте удалить все предыдущие установленные PIL * из каталога python "site-package", чтобы убедиться, что настройка работает

python setup.py install

Для меня это связано с тем, что я использую 32-битный Python на Snow Leopard, и решил проблему, установив jpeg lib следующим образом:

./configure CFLAGS="-arch i386" --enable-shared --enable-static
0 голосов
/ 25 сентября 2009

Если вы собираете с помощью libjpeg, но самотестирование завершается неудачно, у вас, вероятно, есть еще одна установка PIL, которая сбивает с толку. Попробуйте установить его и посмотрите, работает ли самотестирование.

Также прямая ссылка на инструкции, указанные в ОП, здесь

0 голосов
/ 30 октября 2008

Путь Python все еще смотрит на старую двоичную версию libjpeg?

Вам нужно будет изменить его, чтобы он указывал на новое место, если оно есть.

Когда вы компилировали новую версию PIL, он сказал, что нашел libjpeg? Он будет скомпилирован счастливо без него (iirc), и первый признак неприятностей, которые вы увидите, это время включения.

Вам потребуется скорректировать путь в ./configure time.

Разница может просто не работать для вас. Вы должны протестировать еще немного, а затем, возможно, сообщить об ошибке.

...