IOError: decoder jpeg not available

Или «Как установить в Ubuntu PIL так, чтобы он мог открыть jpeg?»

— Как установить PIL?
— Конечно же pip install PIL
— Все правильно сделал! Но почему PIL не можеть декодировать JPEG?

Все дело в том, что во время сборки PIL не нашел библиотеки libjpeg и собрался без них (и, соответственно, без поддержки jpeg вообще). Виной тому, вероятнее всего, одна из двух причин:

libjpeg не был установлен в системе на момент сборки PIL

  1. Устанавливаем libjpeg (и остальные нужные либы):
    $ sudo apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev
  2. Переустанавливаем PIL:
    pip uninstall PIL
    pip install PIL

В Ubuntu эти либы лежат не там, где ожидает PIL

А именно: в /usr/lib/x86_64-linux-gnu/, а а не в /usr/lib/. Проще всего решить эту проблему созданием в /usr/lib/ символических ссылок на правильные либы.

  1. Создаем символические ссылки (i386 вместо x86_64, если система 32-битная):
    $ sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/
    $ sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/
    $ sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/
  2. Переустанавливаем PIL:
    pip uninstall PIL
    pip install PIL

PROFIT!

Спасибо, что читаете!

Запись опубликована в рубрике Разное. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *