Поиск

суббота, 21 июля 2012 г.

Django -> sorl -> PIL выдает ошибку encoder jpeg not available

Собственно говоря получил ошибку, описанную в сабже. Джанго проект крутится в виртуальней среде (использую virtualenv). Для генерации тумб (thumbnail) используется sorl, который использует для ресайза PIL который в свою очередь для работы с JPEG изображениями использует библиотеку libjpeg и заголовочные файлы для нее.

Так вот такая ошибка возникает, когд эта либа или хидеры для нее не установлены. Установить (в Ubuntu) можно так:


sudo apt-get install libjpeg libjpeg-dev

Далее надо удалить к чертям PIL:


pip uninstall PIL

Далее необходимо скачать только исходники PIL:


pip install --no-install PIL 

Далее надо отредактировать setup.py (папка build/PIL вашего виртуального окружения) PIL (перед строкой 214 добавляем еще одну директорию для поиска либ):


add_directory(library_dirs, "/usr/lib/i386-linux-gnu")

Ну все, теперь надо установить либу и запускать проект:

в директории build/PIL выполняем команду


pip install PIL

Решать проблему помог этот топик на SO.

А вообще, ребятки, используйте Pillow, пригодный для установки через pip.

Комментариев нет:

Отправить комментарий