पायथन इमेज लाइब्रेरी "डिकोडर जेपीईजी उपलब्ध नहीं है" संदेश के साथ विफल रहता है - पीआईएल


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
यह एक वैध प्रश्न है। पीआईएल एक प्रसिद्ध पायथन लाइब्रेरी है और यह कुछ लिनक्स प्रणालियों में एक अजीब त्रुटि देता है। इस सवाल और जवाब ने मेरी मदद की। यह एक सामान्य SO प्रश्न है।
नवमी

मुझ में PRAGMATIST और OCD का कहना है कि यह सर्वरफॉल्ट पर है, एसओ पर नहीं। लेकिन कितने प्रोग्रामर ने इस समस्या को मारा है? मैं सर्वरफ़ॉल्ट पर सवाल को स्थानांतरित करने के लिए मतदान करता हूं, और एसओ पर जगह में पुनर्निर्देशित करता हूं।
FlipMcF

1
शायद आप इसे पढ़ सकते हैं और इसे आजमा सकते हैं: stackoverflow.com/questions/18504835/…
Wee

1
@dkt मैं तकिया का उपयोग कर रहा हूं और मैं यहां हूं क्योंकि मैंने इस मुद्दे को मारा है।
स्टीफन टेट्र्टॉल्ट

1
@dkt मुझे पता है, मैं सिर्फ यह कह रहा था कि यह मुद्दा अभी भी कायम है।
स्टीफन टेट्रौल्ट

जवाबों:


488

libjpeg-dev को तकिया (या PIL) के साथ jpegs को संसाधित करने में सक्षम होना आवश्यक है, इसलिए आपको इसे स्थापित करने और फिर recompile तकिया की आवश्यकता होगी। यह भी लगता है कि libjpeg8-dev की आवश्यकता उबंटू 14.04 पर है

यदि आप अभी भी पीआईएल का उपयोग कर रहे हैं, तो आपको वास्तव में इन दिनों तकिए का उपयोग करना चाहिए, इसलिए pip uninstall 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 बिट के 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 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

(टिप्पणियों से प्रतिक्रिया को शामिल करने का संपादन करता है। इस अंतर को इंगित करने के लिए धन्यवाद चार्ल्स ऑफेनबैकर 32 बिट के लिए अलग है, और उपयोग के सुझाव देने के लिए टी-मार्ट --no-cache-dir)।


1
समस्या यह थी कि मेरे पास दो अजगर पैकेज थे। एक जो ubuntu के साथ जहाज और दूसरा जो कि Zope Server का था। किसी तरह, लाइब्रेरी को दूषित किया गया था क्योंकि मैंने गलत पैकेज में गलत तरीके से इसे स्थापित किया था। अन्यथा, कोई समस्या नहीं है।
रवि

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 /; सुंडो ln -s /usr/lib/i386-linux-gnu/libjpeg.so / usr / lib /
चार्ल्स ऑफ़ेनबैकर

2
किसी के लिए भी, जो पीआईएल के साथ शुरुआत कर रहा है, उसे ध्यान देना चाहिए कि वह पुराना है और वास्तव में अब तक कायम नहीं है। यदि आप अपनी परियोजना में छवियों के साथ काम करना चाहते हैं, तो PILLOW का उपयोग करें जो अपडेट किया गया है और कांटा या PIL बनाए रखा गया है।
धीरज ठाकुर

1
@ रोल 3 घंटे के बाद आपका दूसरा विकल्प मेरे लिए काम करता है धन्यवाद बहुत तकिये का
डंबल है

5
पाइप के हाल के संस्करणों को डाउनलोड किए गए पैकेज और उनके संकलन को कैश करना होगा। निश्चित रूप से, यह pip installपहली बार चीजों के लिए बहुत लंबा था , लेकिन फिर बाद में अनइंस्टॉल और (पुनः) इंस्टॉल संदिग्ध रूप से त्वरित थे। वैसे भी , ऊपर के तरीके मेरे लिए तब तक काम नहीं करते थे जब तक मैं भागता नहीं था pip install --no-cache-dir pillow। सौभाग्य!
t-Mart

63

OSX पर उन लोगों के लिए, मैंने libpng और libjpeg स्थापित सिस्टमवाइड प्राप्त करने के लिए निम्नलिखित बाइनरी का उपयोग किया:

OSX के लिए libpng और libjpeg

क्योंकि मेरे पास पहले से ही पीआईएल स्थापित था (एक वर्चस्व पर पाइप के माध्यम से), मैं भाग गया:

pip uninstall PIL
pip install PIL --upgrade

इससे decoder JPEG not availableमेरे लिए त्रुटि हल हो गई ।

अद्यतन (4/24/14) :

पाइप के नए संस्करणों को बाहरी स्रोतों से पुस्तकालयों (पीआईएल सहित) को डाउनलोड करने के लिए अतिरिक्त झंडे की आवश्यकता होती है। निम्नलिखित का प्रयास करें:

pip install PIL --allow-external PIL --allow-unverified PIL

अतिरिक्त जानकारी के लिए निम्नलिखित उत्तर देखें: पीआईएल स्थापित करें पीआईएल को वर्चुअनव में स्थापित न करें

अद्यतन 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

यदि आप उबंटू 12.04 64 बिट पर हैं, तो जीन्सटॉय के समाधान की कोशिश करें, मुझे पता है कि उन्होंने इसे OSX के लिए किया था, लेकिन मैंने इसकी कोशिश की और यह मेरे लिए काम कर गया।
गतिरोध

मुझे यह त्रुटि मिली: आवश्यकता के अनुरूप पायलट को संतुष्ट करने वाला कोई भी डोनलोड नहीं मिल सका
RicardoGonzales

@RicardoGonzales, आप संभवतः अतिरिक्त झंडे को पारित करने के लिए आवश्यक पाइप के एक संस्करण पर चल रहे हैं। कृपया मेरे उत्तर के लिए अद्यतन देखें।
जिनेत्सोई

@zeantsoi अब पैकेज डाउनलोड कर रहा है और इंस्टॉल कर रहा है लेकिन "क्लीनिंग" मैसेज के बाद। मुझे त्रुटि मिली है: "-c आयात सेटपूल, टोकन, __ फ़ाइल ... ..." कोई सलाह?
रिकार्डोगोन्जेल्स

29

यह एकमात्र तरीका है जिसने मेरे लिए काम किया। पैकेजों को स्थापित करना और पीआईएल को फिर से स्थापित करना काम नहीं आया।

Ubuntu पर, आवश्यक पैकेज स्थापित करें:

sudo apt-get install libjpeg-dev

(आप libfreetype6 libfreetype6-dev zlib1g-devअन्य डिकोडर्स को सक्षम करने के लिए भी इंस्टॉल करना चाह सकते हैं )।

फिर पीआईएल को तकिए से बदलें:

pip uninstall PIL
pip install pillow

मैंने कुछ समय पहले किया था, और आज अचानक त्रुटि फिर से दिखाई दी। तकिए को अपग्रेड करने से समस्या ठीक हो गई pip install pillow --upgrade:।
डेनिस गोलोमेज़ोव

21

निम्नलिखित 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

जब आपका "" जेपीईजी समर्थन उपलब्ध है "इसका मतलब है कि यह काम करता है।

लेकिन, अगर यह तब भी काम नहीं करता है जब आपकी जेपीईजी छवि को संपादित करता है, तो अजगर पथ की जांच करें !! मेरा अजगर रास्ता चूक गया /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/

फिर, आखिरकार, यह काम करता है !!


नमस्ते, मुझे लगता है कि मैं अजगर पथ के साथ एक समस्या है काम नहीं कर रहा हूँ क्योंकि PIL आँकड़े स्थापित है कि --JPEG समर्थन उपलब्ध है। हालाँकि, वास्तव में .jpeg छवियों के साथ पायलट ऑप्स करने से डिकोडर jpeg की त्रुटियां होती हैं। stackoverflow.com/questions/18504835/…
लुकास ओए-यांग

16

फेडोरा 17 पर मुझे स्थापित करना पड़ा libjpeg-develऔर बाद में फिर से स्थापित करना पड़ा PIL:

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

1
वही आरएचईएल / सेंटो के लिए जाता है।
जैकब रोक्स्टोसिल

14

रोलो का जवाब उत्कृष्ट है, हालांकि मुझे पिप कैश (पाइप 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)


इसके लिए धन्यवाद। Theno-cache-dir विकल्प ने मेरी भी मदद की
dranxo

12

Mac OS X Mavericks (10.9.3) पर, मैंने इसे निम्न प्रकार से हल किया:

द्वारा libjpeg स्थापित काढ़ा (पैकेज प्रबंधन सिस्टम)

शराब की भठ्ठी libjpeg स्थापित करें

पुनर्स्थापना तकिया (मैं पीआईएल के बजाय तकिया का उपयोग करता हूं)

पाइप स्थापित -I तकिया


2
यह मेरे काढ़ा की स्थापना के साथ एक अलग समस्या के कारण हो सकता है, लेकिन मुझे brew unlink jpeg && brew link jpegपिलो स्थापित करने से पहले करना पड़ा ।
लुकास

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

इन्हें स्थापित करें और पीआईएल को पाइप से स्थापित करना सुनिश्चित करें क्योंकि मैंने इसे स्रोत से संकलित किया है और किसी कारण से यह काम नहीं किया


सभी आवश्यक निर्भरताओं की सूची ।
पाओलो

9

मैं पहले से ही उपयोग कर रहा था Pillowऔर मुझे वही त्रुटि मिली। स्थापित करने की कोशिश की libjpegयाlibjpeg-dev दूसरों के सुझाव के अनुसार लेकिन बताया गया कि एक (नया) संस्करण पहले ही स्थापित किया गया था।

अंत में यह सब कुछ बदल रहा था Pillow:

sudo pip uninstall Pillow
sudo pip install Pillow

3

मैं zeantsoi पोस्ट टिप्पणी करने के लिए बहुत नौसिखिया हूँ; (तो यहाँ 10.9.1 पर OSX पर हल करने के लिए मुझे क्या करने की आवश्यकता है

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) रन के साथ पीआईएल को फिर से स्थापित करेंpip install -I PIL (जैसा कि मैंने शुरू में पीआईएल को जारी करने से पहले स्थापित किया था)

आशा है कि यह मदद और अधिक भ्रमित न करें ...

_ओह ओ


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

यहाँ JPEG support availableभी वही समस्या है, लेकिन फिर भी IOError: decoder/encoder jpeg not availableमुझे छोड़कर, मैं पिलो का उपयोग करता हूं और पीआईएल का नहीं।

मैंने उपरोक्त सभी और अधिक की कोशिश की, लेकिन कई घंटों के बाद मुझे एहसास हुआ कि sudo pip installइसका उपयोग करना वैसा काम नहीं करता है जैसा कि मैंने उम्मीद की थी, के साथ संयोजन मेंvirtualenv । मुझे मूर्ख।

sudoप्रभावी रूप से कमांड को एक नए शेल में लॉन्च करना (मेरी यह समझ पूरी तरह से सही नहीं हो सकती है) जहां वर्चुअन सक्रिय नहीं है, जिसका अर्थ है कि संकुल वैश्विक वातावरण में स्थापित किया जाएगा। (इससे चीजें गड़बड़ हो गईं, मुझे लगता है कि मेरे पास पिलो के 2 अलग-अलग इंस्टॉलेशन थे।)

मैंने चीजों को साफ किया, उपयोगकर्ता को रूटीन में बदल दिया और वर्चुअलएन में पुनः इंस्टॉल किया और अब यह काम करता है।
उम्मीद है कि यह किसी की मदद करेगा!


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-devel और zlib-devel पैकेज स्थापित कर रहे हैं


0

पहले मुझे पाइथन को अनइंस्टॉल करने के अलावा हिडन फोल्डर यूजर / ऐपडाटा (जो कि भारी सिरदर्द पैदा कर रहा था) में अजगर फोल्डर को डिलीट करना पड़ा। फिर मैंने WinPython वितरण स्थापित किया: http://code.google.com/p/winpython/ जिसमें PIL शामिल है


4
खिड़कियों के नीचे पायथन विकास दर्दनाक है। मुझे सलाह है कि नहीं।
9

0

मैक ओएस माउंटेन लायन पर उन लोगों के लिए, मैंने जीन्ट्सोई के awser का अनुसरण किया, लेकिन यह काम नहीं करता है।

मैं अंत में इस पद के समाधान के साथ समाप्त हुआ: http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/

अब, मैं खुशी से jpeg के लिए अपनी स्क्रिप्ट चला रहा हूँ!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.