Библиотека PIL / JPEG: «декодер JPEG недоступен» - PullRequest
51 голосов
/ 08 января 2011

Я пытался использовать PIL для выполнения некоторых операций JPEG в моем приложении django с помощью PIL, но я получаю эту ошибку IOError ... не уверен, что делать.

""decoder jpeg not available""

Я пропустил декодер JPEG измой сервер?Если да, то как мне это исправить?

Ответы [ 8 ]

72 голосов
/ 06 сентября 2012

Я нашел этот ответ от автора "edward"

В Ubuntu точной PIL не находит файлы библиотеки jpeg, даже после их установки.Самый простой способ исправить это - создать символическую ссылку после установки пакета jpeg dev.Итак, мне потребовался дополнительный шаг:

для x64 OS

pip uninstall PIL
sudo apt-get install libjpeg8-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
pip install PIL

для x32 OS

pip uninstall PIL
sudo apt-get install libjpeg8-dev
sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
pip install PIL

Я подтверждаю, что это работает для меня в Ubuntu Linux 12.04.


Если вы пользователь Mac - вам необходимо установить Xcode и инструменты командной строки, Прочтите, как это сделать

56 голосов
/ 08 января 2011

Сначала вам нужно установить библиотеку jpeg и переустановить ваш PIL.Например, я использую CentOS, чтобы установить libjpeg, я запускаю

sudo yum install -y libjpeg-devel

Это зависит от того, какой тип Linux вы используете.И вот вам нужно удалить старый PIL

rm -rf /usr/lib/python2.6/site-packages/PIL-1.1.7-py2.6-linux-x86_64.egg/

Затем установить PIL

sudo easy_install PIL
20 голосов
/ 20 января 2012

Более сильный ответ можно найти в установить pil на virtualenv с помощью libjpeg

Для меня то, что в итоге работало над Ubutu, было:

pip uninstall PIL
sudo apt-get install libjpeg8-dev
pip install PIL

Библиотека изображений Python(PIL), кажется, очень требователен к версии и расположению библиотек jpeg.А поскольку PIL написан на C и скомпилирован, вам необходимы версии библиотеки development в дополнение к версиям времени выполнения.

6 голосов
/ 12 февраля 2013

У меня нет привилегий sudo, потому что я на общем сервере bluehost.Поэтому я не могу запустить ни одну из этих команд sudo apt-get jpeg.В итоге я запустил

pip uninstall pil
pip install pillow

, и, видимо, подушке удалось найти поддержку jpegs.

3 голосов
/ 28 октября 2013

В папке установки Imaging есть файл selftest.py, попробуйте:

python selftest.py

, вы увидите что-то вроде этого:

--------------------------------------------------------------------
*** PIL CORE support not installed
*** TKINTER support not installed
--- JPEG support ok
--- ZLIB (PNG/ZIP) support ok
*** FREETYPE2 support not installed
*** LITTLECMS support not installed
--------------------------------------------------------------------

, если поддержка JPEG недоступна, Centos:

yum install libjpeg-devel
yum install freetype-devel 
yum install libpng-devel
2 голосов
/ 17 марта 2013

Для пользователей Mac вы можете скачать библиотеку здесь: http://ethan.tira -thompson.com / Mac_OS_X_Ports.html . Затем удалите и установите PIL

0 голосов
/ 02 января 2016

В дистрибутивах Debian используйте libjpeg62-turbo-dev вместо libjpeg8-dev

0 голосов
/ 08 января 2011

Вы можете построить PIL из источника: http://effbot.org/zone/pil-decoder-jpeg-not-available.htm

...