Ошибка PIL: decoder jpeg not available
8 февраля 2014 г. 3:11
При использовании PIL в Linux может возникнуть ошибка: decoder jpeg not available
. Ниже описываются несколько способов, позволяющих решить данную проблему.
1) PIL требует наличие библиотеки libjpeg-dev
Попробуйте установить её (ключ -I в команде pip install выполняет переинсталяцию библиотеки):
$ sudo apt-get install libjpeg-dev $ pip install -I PIL
Но если у вас это не сработает, попытайтесь сделать симлинки библиотек в указанные ниже пути:
Для x64 разрядной системы:
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib $ 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
Для x32 разрядной системы:
$ sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/ $ sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so.6 /usr/lib/ $ sudo ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib/
А затем снова переинсталировать:
$ pip install -I PIL
2) Если не найден пакет libjpeg-dev
Если при установке библиотеки libjpeg-dev командой apt-get install libjpeg-dev
возникла ошибка:
E: Не удалось найти пакет libjpeg-dev
то может помочь следующее решение:
Для x64 разрядной системы:
$ 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 разрядной системы
$ pip uninstall PIL $ sudo apt-get install libjpeg8-dev $ sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib $ pip install PIL
3) Установить дополнительные библиотеки:
$ apt-get install libjpeg62 libjpeg62-dev zlib1g-dev libfreetype6 libfreetype6-dev
4) Нужно посмотреть списки репозиторий и при необходимости добавить нужные пути в интернете до источников.
Или имеется ошибка E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты
при попытке вызвать sudo apt-get install libjpeg-dev
, то заходим в /etc/apt/sources.list, где хранятся все списки репозиторий:
$ sudo nano /etc/apt/sources.list
И проверяем есть ли ниже написанная сточка:
# /etc/apt/sources.list deb http://ru.archive.ubuntu.com/ubuntu/ precise main
Если нет, то попробуем добавить (у меня она и сработала на linux mint 14 Nadia)
Надо отметить, что есть сервис, позволяющий сгенерировать sources.list - http://repogen.simplylinux.ch/. На этой странице я сгенерировал для себя sources.list, выбрав страну - "Россия", релиз - "Precise 12.04 (LTS, supported until April 2017)" и поставив галочку на "Main - Officially supported software.".
Дополнительно про репозитории можно прочитать здесь: http://help.ubuntu.ru/wiki/репозиторий, про установку программ в linux здесь: http://help.ubuntu.ru/wiki/установка_программ
Далее обновим списки репозиторий и пакеты.
$ sudo dpkg-reconfigure -a # dpkg-reconfigure с ключом -a будет перенастраивать все пакеты $ sudo apt-get dist-upgrade # попытка обновить пакеты с "с продвинутым механизмом разрешения конфликтов" $ sudo apt-get update # Если в логе возникают 404 ошибки при попытке закачки какого-то пакета, то нужно попробовать убрать лишнее из /etc/apt/sources.list # (мне пришлось так вообще одну строчку "deb http://ru.archive.ubuntu.com/ubuntu/ precise main" оставить, чтобы заработало)
Теперь снова пробуем выполнить способы 1, 2, 3. Если и это не помогает, то попытаться поискать в гугле.
Похожие статьи:
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0