PIL декодер jpeg недоступен на ubuntu x64,

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

Я пробовал все: Библиотека изображений Python не работает с сообщением" декодер JPEG недоступен " - PIL без успеха.

Когда я запускаю sudo pip install pil, хуже всего, возникает ошибочная ошибка. Поддержка Jpeg, Freetyle и т.д. Все перечислены как доступные. Но при запуске некоторого кода на Python с использованием PIL печально известный IOError из "decoder jpeg not available".

Даже после symlinking в /usr/lib для файлов .so libjpeg ничего не сработало.

Любые идеи? Спасибо.

Ответ 1

Вы можете попробовать следующее:

1. очистить пакеты PIL

rm -rf /usr/lib/python2.7/site-packages/PIL
rm -rf /usr/lib/python2.7/site-packages/PIL.pth

2. установить необходимые пакеты

ubuntu:
apt-get install libjpeg-dev libfreetype6-dev zlib1g-dev libpng12-dev

centos:
yum install zlib zlib-devel
yum install libjpeg libjpeg-devel
yum install freetype freetype-devel

3. скачать и установить

wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
tar xzvf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
# if the sys is x64, you must also do this: edit the setup.py file and set:
# centOS:
TCL_ROOT = '/usr/lib64'
JPEG_ROOT = '/usr/lib64'
ZLIB_ROOT = '/usr/lib64'
TIFF_ROOT = '/usr/lib64'
FREETYPE_ROOT = '/usr/lib64'
LCMS_ROOT = '/usr/lib64'
# Ubuntu:
TCL_ROOT = '/usr/lib/x86_64-linux-gnu'
JPEG_ROOT = '/usr/lib/x86_64-linux-gnu'
ZLIB_ROOT = '/usr/lib/x86_64-linux-gnu'
TIFF_ROOT = '/usr/lib/x86_64-linux-gnu'
FREETYPE_ROOT = '/usr/lib/x86_64-linux-gnu'
LCMS_ROOT = '/usr/lib/x86_64-linux-gnu'
#then install it use:
python2.7 setup.py install

4. проверьте, работает ли он

# before this command you should run `mv PIL PIL2`

python2.7 selftest.py

Если результат:

--- PIL CORE support ok
--- TKINTER support ok
--- JPEG support ok
--- ZLIB (PNG/ZIP) support ok
--- FREETYPE2 support ok
*** LITTLECMS support not installed
--------------------------------------------------------------------
Running selftest:
--- 57 tests passed.

Поздравляем!!