[python] Python Image Library가 “디코더 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

이 문제를 어떻게 해결할 수 있습니까?



답변

libjpeg-dev는 베개 (또는 PIL)로 jpeg를 처리 할 수 ​​있어야하므로 베개를 설치 한 다음 베개를 다시 컴파일해야합니다. 우분투 14.04에서는 libjpeg8-dev가 필요한 것 같습니다.

그래도 여전히 PIL을 사용하고 있다면 요즘 베개를 사용해야합니다. 먼저이 pip uninstall PIL지침을 따르기 전에 전환하거나 PIL을 고수 해야하는 이유가 있다면 아래의 “pillow”를 “PIL”로 바꾸십시오. ).

우분투에서 :

# 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 비트 우분투에 있는지 여부에 따라 아래 중 하나를 시도하십시오.

우분투 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

또는 우분투 32 비트의 경우 :

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

(댓글의 의견을 포함하도록 편집합니다.이 점을 지적 해준 Charles Offenbacher에게 감사의 말을 전합니다 --no-cache-dir.


답변

OSX 사용자는 다음 바이너리를 사용하여 시스템 전체에 libpng 및 libjpeg를 설치했습니다.

OSX 용 libpng 및 libjpeg

PIL이 이미 설치되어 있기 때문에 (virtuenv에서 pip를 통해)

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

추가 정보는 다음 답변을 참조하십시오. pip install PIL dont virtualenv에 설치하지 마십시오

업데이트 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 재설치가 작동하지 않았습니다.

우분투에서 필요한 패키지를 설치하십시오 :

sudo apt-get install libjpeg-dev

( libfreetype6 libfreetype6-dev zlib1g-dev다른 디코더를 활성화 하기 위해 설치할 수도 있습니다 ).

그런 다음 PIL을 베개로 교체하십시오.

pip uninstall PIL
pip install pillow


답변

다음은 우분투 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하십시오.

편집하다: 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


답변

Rolo의 대답은 훌륭하지만 pip 캐시 (pip 7에 도입)를 우회하여 Pillow를 다시 설치해야했습니다. 그렇지 않으면 제대로 다시 컴파일되지 않습니다! 명령은 다음과 같습니다.

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
    --------------------------------------------------------------------

이전에 apt (libjpeg-dev libpng12-dev libfreetype6-dev libtiff-dev)를 통해 필요한 라이브러리를 설치했기 때문에 jpg, tiff 등의 지원이 활성화되어 있습니다.


답변

Mac OS X Mavericks (10.9.3)에서 다음을 수행하여이 문제를 해결했습니다.

추출 (패키지 관리 시스템)로 libjpeg 설치

brew install libjpeg

베개 재설치 (PIL 대신 베개 사용)

핍 설치-베개