Python Image Library가 "디코더 JPEG를 사용할 수 없음"메시지와 함께 실패 함-PIL


305

PIL은 내 시스템에서 JPEG를 지원합니다.

업로드 할 때마다 코드가 실패합니다.

File "PIL/Image.py", line 375, in _getdecoder
    raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available

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


22
유효한 질문입니다. PIL은 유명한 Python 라이브러리이며 일부 Linux 시스템에서는 이상한 오류가 발생합니다. 이 질문과 답변이 도움이되었습니다. 일반적인 SO 질문입니다.
네 베스

PRAGMATIST와 OCD는 SO가 아니라 ServerFault에 속한다고 말합니다. 그러나이 문제를 해결 한 프로그래머는 몇 명입니까? 질문을 ServerFault로 옮기고 SO에 리디렉션을 남겨두기로 투표합니다.
FlipMcF

1
아마 이것을 읽고 시도해 볼 수 있습니다 : stackoverflow.com/questions/18504835/…
Wee

1
@dkt 필자는 베개를 사용하고 있으며이 문제에 부딪 쳤기 때문에 여기에 있습니다.
Stephen Tetreault

1
@dkt 알고 있습니다. 문제가 계속 지속된다는 내용이 전부였습니다.
Stephen Tetreault

답변:


488

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.


1
문제는 두 개의 파이썬 패키지가 있다는 것입니다. 하나는 우분투와 함께 제공되고 다른 하나는 Zope 서버에 속합니다. 어떻게 든 잘못된 패키지에 라이브러리를 잘못 설치했기 때문에 라이브러리가 손상되었습니다. 그렇지 않으면 문제가 없습니다.
Ravi

2
x86_64에서만 작동하는 레코드의 경우 다음을 실행해야했습니다. sudo ln -s /usr/lib/i386-linux-gnu/libz.so / usr / lib /; sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so.6 / usr / lib /; sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so / usr / lib /
Charles Offenbacher

2
PIL로 막 시작한 사람이라면 그것이 구식이며 더 이상 실제로 유지되지 않는다는 것을 알아야합니다. 프로젝트에서 이미지로 작업하려면 포크 또는 PIL을 업데이트하고 유지 관리하는 PILLOW를 사용하십시오.
Dhiraj Thakur

1
@Rolo 3 시간 후 두 번째 옵션이 나를 위해 일했습니다. 베개가
멍청한

5
최신 버전의 pip는 다운로드 한 패키지와 해당 컴파일을 캐시해야합니다. 확실히 pip install처음에는 시간 이 많이 걸렸지 만 이후의 제거 및 (재) 설치는 의심 할 정도로 빠릅니다. 어쨌든 , 위의 방법은 내가 달릴 때까지 나에게 효과가 없었습니다 pip install --no-cache-dir pillow. 행운을 빕니다!
t-mart

63

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

Mavericks (10.9)로 업그레이드 한 후이 문제가 발생했습니다. 다음 SO 게시물 이 문제를 해결했습니다. 받는 사람 아래로 스크롤 설치 명령 줄 도구의 @Formulka에 의해 코멘트
tatlar

Ubuntu 12.04 64 비트를 사용하는 경우 zeantsoi의 솔루션을 사용해보십시오. 그가 OSX에서 해냈지만 시도해 보았습니다.
교착 상태

이 오류가 발생했습니다. 요구 사항을 만족하는 donwnload를 찾을 수 없습니다
RicardoGonzales

@RicardoGonzales, 아마도 pip 버전에서 실행 중이므로 추가 플래그를 전달해야합니다. 내 답변의 업데이트를 참조하십시오.
zeantsoi

@zeantsoi는 이제 패키지를 다운로드하고 설치하지만 "정리"메시지 후에 설치합니다. "-c import setuptools, tokenize; __ file ... ..."어떤 오류가 있습니까?
RicardoGonzales

29

이것이 나를 위해 일한 유일한 방법입니다. 패키지 설치 및 PIL 재설치가 작동하지 않았습니다.

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

sudo apt-get install libjpeg-dev

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

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

pip uninstall PIL
pip install pillow

나는 얼마 전에 이것을했고, 오늘 갑자기 오류가 다시 나타났습니다. 베개를 업그레이드하면 문제가 해결되었습니다 pip install pillow --upgrade.
Dennis Golomazov

21

다음은 우분투 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/

그런 다음 마침내 작동합니다!


안녕하세요, 저는 JPEG 지원이 가능한 PIL 통계를 설치하기 때문에 파이썬 경로가 작동하지 않는 문제가 있다고 생각합니다. 그러나 실제로 .jpeg 이미지로 pil opts를 수행하면 디코더 jpeg 오류가 발생합니다. stackoverflow.com/questions/18504835/…
Lucas Ou-Yang

16

Fedora 17에서는 설치 한 libjpeg-devel후 다시 설치해야 했습니다 PIL.

sudo yum install --assumeyes libjpeg-devel
sudo pip-python install --upgrade PIL

1
RHEL / CentOS도 마찬가지입니다.
야쿱 Roztocil

14

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 등의 지원이 활성화되어 있습니다.


고마워 --no-cache-dir 옵션도 도움이되었습니다.
dranxo

12

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

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

brew install libjpeg

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

핍 설치-베개


2
이것은 추출 설치에 별도의 문제가 있기 때문일 수 있지만 brew unlink jpeg && brew link jpeg필로우를 설치 하기 전에 해야했습니다 .
Lucas

11
apt-get install libjpeg-dev
apt-get install libfreetype6-dev
apt-get install zlib1g-dev
apt-get install libpng12-dev

이것을 설치하고 소스에서 컴파일했기 때문에 pip로 PIL을 설치해야하며 어떤 이유로 든 작동하지 않습니다.


필요한 모든 목록 의존성 .
Paolo

9

나는 이미 사용 Pillow하고 있었고 같은 오류가 발생했습니다. 설치를 시도 libjpeg했거나 libjpeg-dev다른 사람이 제안한대로 (최신) 버전이 이미 설치되어 있다는 메시지가 표시되었습니다.

결국 모든 것이 재설치되었습니다 Pillow.

sudo pip uninstall Pillow
sudo pip install Pillow

3

나는 zeantsoi post를 언급하기에는 너무 초보자입니다.

IOError : 디코더 JPEG를 사용할 수 없습니다

1) Xcode 도구를 설치 하십시오 (터미널을 열고 다음을 실행하십시오 : xcode-select --install)-이 게시물에서 가져온 것 : Mac OS X 10.9 후에 PIL을 설치할 수 없습니다

2) 다음 링크에서 libpng 및 libjpeg 패키지 (콤보 설치 프로그램)를 설치하십시오. http://ethan.tira-thompson.com/Mac_OS_X_Ports.html

3) 재부팅 (필수인지 확실하지 않음)

4) 실행 하여 PIL다시 설치pip install -I PIL 하십시오 (문제가 발생하기 전에 PIL을 처음 설치 했으므로)

이 도움을 희망하고 더 혼동하지 마십시오 ...

_oho


2

이 질문은 꽤 오래 전에 게시되었으며 대부분의 답변도 꽤 오래되었습니다. 그래서 이것을 알아 내려고 몇 시간을 보냈을 때 아무것도 효과가 없었 으며이 게시물의 모든 제안을 시도했습니다.

Django 아바타 형식으로 JPG를 업로드하려고 할 때 여전히 표준 JPEG 오류가 발생했습니다.

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 년 이후의 누군가를 돕기를 바랍니다!

건배


1

필자는 PIL이 아닌 Pillow를 사용하는 것을 제외하고 JPEG support available는 여기에서도 동일한 문제가 발생했습니다 IOError: decoder/encoder jpeg not available.

나는 위의 모든 것들을 더 시도했지만 시간이 지나면 사용 sudo pip install이 예상대로 작동하지 않는다는 것을 깨달았습니다.virtualenv . 바보 나.

를 사용 하면 virtualenv가 활성화되지 않은 sudo새 셸에서 명령을 효과적으로 시작합니다 (이에 대한 이해가 완전히 정확하지 않을 수 있음) . 즉, 패키지가 전역 환경에 대신 설치됩니다. (이것은 엉망이되어, 필자는 필로우의 2 가지 설치가 있다고 생각합니다.)

나는 물건을 정리하고 사용자를 루트로 변경하고 virtualenv에 다시 설치했으며 이제는 작동합니다.
잘하면 이것은 누군가를 도울 것입니다!


1

페도라

전제 조건
sudo dnf install make automake gcc gcc-c++ kernel-devel rpm-build libjpeg-devel zlib-devel python-devel
설치 지금 베개 설치

sudo pip install pillow

참고-libjpeg 및 zlib의 경우 Fedora / CentOS / Red Hat에 libjpeg-develzlib-devel 패키지를 설치 합니다


0

먼저 파이썬을 제거하는 것 외에도 숨겨진 폴더 user / appData (큰 두통을 일으켰습니다)에서 파이썬 폴더를 삭제해야했습니다. 그런 다음 WinPython Distribution을 설치했습니다 : http://code.google.com/p/winpython/ PIL 포함


4
창문 아래의 파이썬 개발은 고통 스럽습니다. 하지 말 것을 권합니다.
eviltnan

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.