Библиотека изображений Python завершается с сообщением "декодер JPEG недоступен" - PIL
PIL поддерживает JPEG в моей системе.
всякий раз, когда я делаю загрузку, мой код не работает с:
File "PIL/Image.py", line 375, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
Как я могу решить это?
15 ответов:
libjpeg-dev требуется, чтобы иметь возможность обрабатывать JPEG с подушкой (или PIL), поэтому вам нужно установить его, а затем перекомпилировать подушку. Также кажется, что libjpeg8-dev необходим на Ubuntu 14.04
если вы все еще используете PIL, то вы действительно должны использовать подушку в эти дни, так что сначала
pip uninstall PIL
прежде чем следовать этим инструкциям для переключения, или если у вас есть веская причина для прилипания к PIL, замените "подушку" на "PIL" ниже).On Ubuntu:
# install libjpeg-dev with apt sudo apt-get install libjpeg-dev # if you're on Ubuntu 14.04, also install this sudo apt-get install libjpeg8-dev # reinstall pillow pip install --no-cache-dir -I pillow
если это не работает, попробуйте один из приведенных ниже, в зависимости от того, находитесь ли вы на 64-битном или 32-битном Ubuntu.
для Ubuntu 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
или для Ubuntu 32bit:
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 --no-cache-dir -I pillow
(редактирует, чтобы включить обратную связь от комментариев. Спасибо Чарльзу Оффенбахеру за указание, что это отличается для 32bit, и t-mart за предложение использовать
--no-cache-dir
).
для тех, кто на OSX, я использовал следующий двоичный файл, чтобы установить libpng и libjpeg по всей системе:
потому что у меня уже был установлен PIL (через pip на virtualenv), я побежал:
pip uninstall PIL pip install PIL --upgrade
решили
decoder JPEG not available
ошибка для меня.обновление (4/24/14):
новые версии pip требуют дополнительных флагов для загрузки библиотек (включая PIL) из внешних источников. Пытаться следующее:
pip install PIL --allow-external PIL --allow-unverified PIL
дополнительную информацию см. В следующем ответе:пункт Установить пильный dont установить в виртуальное окружение
обновление 2:
если на OSX Mavericks, вы хотите установить
ARCHFLAGS
флаг @ RicardoGonzales комментарии ниже:ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install PIL --allow-external PIL --allow-unverified PIL
Это единственный способ, который работал для меня. Установка пакетов и переустановка PIL не сработали.
на ubuntu установите необходимый пакет:
sudo apt-get install libjpeg-dev
(вы также можете установить
libfreetype6 libfreetype6-dev zlib1g-dev
для включения других декодеров).затем замените PIL на подушку:
pip uninstall PIL pip install pillow
следующие работы на ubuntu 12.04:
pip uninstall PIL apt-get install libjpeg-dev apt-get install libfreetype6-dev apt-get install zlib1g-dev apt-get install libpng12-dev pip install PIL --upgrade
когда вы видите "-- поддержка JPEG доступна", это означает, что он работает.
но, если он все еще не работает при редактировании изображения jpeg, проверьте путь python !! мой питон путь пропустил
/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/
, поэтому я редактирую~/.bashrc
добавьте в этот файл следующий код:Edit:
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/
потом, наконец, это работает!!
на Fedora 17 мне пришлось установить
libjpeg-devel
и потом переустановитьPIL
:sudo yum install --assumeyes libjpeg-devel sudo pip-python install --upgrade PIL
ответ Роло отличный, однако мне пришлось переустановить подушку, обойдя pip cache (введенный с pip 7), иначе он не будет правильно перекомпилирован!!! Команда такова:
pip install -I --no-cache-dir -v Pillow
и вы можете увидеть, если подушка была правильно настроена, прочитав в журнале это:
PIL SETUP SUMMARY -------------------------------------------------------------------- version Pillow 2.8.2 platform linux 3.4.3 (default, May 25 2015, 15:44:26) [GCC 4.8.2] -------------------------------------------------------------------- *** TKINTER support not available --- JPEG support available *** OPENJPEG (JPEG2000) support not available --- ZLIB (PNG/ZIP) support available --- LIBTIFF support available --- FREETYPE2 support available *** LITTLECMS2 support not available *** WEBP support not available *** WEBPMUX support not available --------------------------------------------------------------------
Как вы можете видеть, поддержка jpg, tiff и так далее включена, потому что я ранее установил необходимые библиотеки через apt (libjpeg-dev libpng12-dev libfreetype6-dev libtiff-dev)
на Mac OS X Mavericks (10.9.3), я решил это, выполнив следующие действия:
установить libjpeg by квас (система управления пакетами)
brew install libjpeg
переустановить подушку (я использую подушку вместо PIL)
pip install-I подушка
apt-get install libjpeg-dev apt-get install libfreetype6-dev apt-get install zlib1g-dev apt-get install libpng12-dev
установите их и обязательно установите PIL с pip, потому что я скомпилировал его из источника и по какой-то причине он не работал
Я уже использовал
Pillow
и получил ту же ошибку. Пробовал установитьlibjpeg
илиlibjpeg-dev
как было предложено другими, но было сказано, что (более новая) версия уже установлена.в конце концов все, что нужно было переустановить
Pillow
:sudo pip uninstall Pillow sudo pip install Pillow
Я слишком Новичок, чтобы комментировать сообщение zeantsoi; (. Так вот его то, что мне нужно было сделать, чтобы решить на OSX на 10.9.1 the
IOError: декодер jpeg недоступен
1) установить Xcode tools (откройте терминал и выполните команду:
xcode-select --install
) - взято из этого поста: не удается установить PIL после Mac OS X 10.92) установить libpng и libjpeg пакет (combo installer) по этой ссылке: http://ethan.tira-thompson.com/Mac_OS_X_Ports.html
3) перезагрузка (не уверен, что это было обязательным)
4) переустановить PIL С
pip install -I PIL
(Как я изначально установил PIL перед тем, как проблема)надеюсь, что это поможет и больше не путай ...
_охо
этот вопрос был опубликован довольно давно, и большинство ответов тоже довольно старый. Поэтому, когда я потратил часы, пытаясь понять это, ничего не сработало, и я попробовал все предложения в этом посте.
Я все еще получал стандартные ошибки JPEG при попытке загрузить JPG в моей форме Аватара Django:
raise IOError("decoder %s not available" % decoder_name) OSError: decoder jpeg not available
затем я проверил репозиторий для Ubuntu 12.04 и заметил некоторые дополнительные пакеты для
libjpeg
. Я установил их, и моя проблема была решено:sudo apt-get install libjpeg62 libjpeg62-dev
установка этих удалены
libjpeg-dev
,libjpeg-turbo8-dev
иlibjpeg8-dev
.надеюсь, что это поможет кому-то в 2015 году и за его пределами!
Ура
та же проблема здесь,
JPEG support available
но все равно получилIOError: decoder/encoder jpeg not available
, за исключением того, что я использую подушку, а не PIL.Я пробовал все выше и больше, но после много часа я понял, что с помощью
sudo pip install
не работает, как я ожидал, в сочетании сvirtualenv
. Глупый я.используя
sudo
эффективно запускает команду в новой оболочке (мое понимание этого может быть не вполне верным) где virtualenv не активирован, что означает, что пакеты будут установлены в окружающей среде. (это все испортило, я думаю, что у меня было 2 разных установки подушки.)я очистил вещи, изменил пользователя на root и переустановил в virtualenv, и теперь он работает.
Надеюсь, это поможет кому-то!
Для Fedora
установить условие
sudo dnf install make automake gcc gcc-c++ kernel-devel rpm-build libjpeg-devel zlib-devel python-devel
Теперь установите подушку
sudo pip install pillow
Примечание - Для libjpeg и zlib мы устанавливаем libjpeg-devel и zlib-devel пакеты в Fedora / CentOS / Red Hat
сначала мне пришлось удалить папки python в скрытой папке user / appData (что создавало огромные головные боли), в дополнение к удалению Python. Затем я установил дистрибутив WinPython:http://code.google.com/p/winpython/ который включает в себя PIL
для тех, кто на Mac OS Mountain Lion, я следовал anwser zeantsoi, но это не работает.
Я, наконец, закончил с решением этого поста: http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/
теперь я с удовольствием запускаю свой скрипт для jpeg !