Решение ошибки 'decoder JPEG not available' в PIL Python
Быстрый ответ
Если при использовании библиотеки Pillow возникает ошибка "декодер JPEG недоступен", это говорит о том, что отсутствует необходимая библиотека libjpeg. Чтобы исправить ситуацию, выполняйте следующие шаги:
Удалите полностью версии PIL и Pillow:
pip uninstall Pillow PIL
- Установите libjpeg, выбрав нужную команду в зависимости от вашей ОС:
– Ubuntu/Debian:
sudo apt-get install libjpeg-dev
– CentOS/RedHat:sudo yum install libjpeg-devel
– macOS с использованием Homebrew:brew install libjpeg
Затем установите Pillow заново, чтобы обеспечить поддержку libjpeg:
pip install Pillow
Это позволит Pillow использовать libjpeg для работы с JPEG-изображениями и обрабатывать их корректно.
Активируем возможности обработки изображений в Pillow
Для полнофункционального использования Pillow, включая поддержку различных форматов изображений, вы должны установить следующие пакеты:
- libfreetype6 и libfreetype6-dev необходимы для работы с текстовыми шрифтами.
- zlib1g-dev предоставляет поддержку PNG и ZIP-сжатия.
Изпользуйте команду ниже для их установки:
sudo apt-get install libfreetype6-dev zlib1g-dev
Заменить устаревшую библиотеку PIL на активно поддерживаемую Pillow поможет избавиться от ошибок декодирования JPEG. Чтобы обновить библиотеку до последней версии, используйте опцию --no-cache-dir
:
pip install Pillow --no-cache-dir
Решение системных проблем
Ubuntu и Debian
В случае проблем с распознаванием библиотек, создайте символические ссылки:
ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib
macOS
Для систем на Mavericks настройте переменную окружения ARCHFLAGS
, чтобы Pillow корректно скомпилировалось:
export ARCHFLAGS="-arch x86_64"
Системы на базе Red Hat
Для установки библиотек используйте команду yum:
sudo yum install --assumeyes libjpeg-devel
Вне зависимости от используемой операционной системы, после установки всех необходимых библиотек обязательно переустановите Pillow для активации поддержки JPEG.
Визуализация
Проблема с декодером в PIL представляет собой набор инструментов, в котором отсутствует инструмент для работы с JPEG:
🧰 До устранения ошибки: [🔧, 🛠, 🔨, ❌]
# ❌ символизирует отсутствие инструмента для обработки JPEG
Решение проблемы аналогично приобретению нехватающего инструмента:
🧰 После устранения ошибки: [🔧, 🛠, 🔨, 📸]
# 📸 теперь обозначает, что инструмент для работы с JPEG имеется и работает исправно!
Теперь ваш набор готов к использованию и не уступает полноценной мастерской. 🛠️✨
Дополнительные советы
Проверьте ваш PYTHONPATH
Убедитесь, что переменная окружения PYTHONPATH
указывает на директорию с файлами библиотеки Pillow/PIL. В противном случае добавьте путь к библиотеке в .bashrc
или .bash_profile
, чтобы обеспечить стабильный доступ.
Обновление PIL в системах с YUM
Чтобы обновить PIL до последней версии в системах с YUM, выполните команду:
sudo pip-python install --upgrade PIL
Декодирование проблем
Если общеиспользуемые решения не работают, возможно, вы столкнулись с проблемами совместимости версий или отсутствием необходимых библиотек. В таком случае, предлагается обратиться к ресурсам вне стандартного репозитория pip, используя дополнительные флаги:
pip install --global-option=build_ext --global-option="-I/usr/local/include" --global-option="-L/usr/local/lib" Pillow
Полезные материалы
- Официальное руководство по установке Pillow.
- Обсуждение ошибки "декодер JPEG недоступен" на форуме Stack Overflow.
- Описание поддерживаемых форматов изображений в Pillow.
- Руководство по установке Pillow в различных операционных системах.
- Рекомендации по устранению ошибки с декодером JPEG в системах Debian/Ubuntu.
- Справочная информация о Python Imaging Library (PIL) и её преемнике Pillow в Википедии.
- Совместимость PIL и Pillow с Python 3 в предложении по улучшению Python (PEP).