Python Image Library failed with message "Decoder JPEG not available" - PIL
PIL obsługuje JPEG w moim systemie.
Ilekroć robię upload, mój kod zawodzi:
File "PIL/Image.py", line 375, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
Jak mogę to rozwiązać? 15 answers
Libjpeg-dev jest wymagany do przetwarzania JPEG z pillow( lub PIL), więc musisz go zainstalować, a następnie przekompilować pillow. Wydaje się również, że libjpeg8-dev jest potrzebny na Ubuntu 14.04
Jeśli nadal używasz PIL, to naprawdę powinieneś używać poduszki w dzisiejszych czasach, więc najpierw pip uninstall PIL
przed wykonaniem tych instrukcji, aby się przełączyć, lub jeśli masz dobry powód do trzymania się PIL, wymień "poduszkę"na" PIL " poniżej).
Na 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
Jeśli to nie działa, spróbuj jednego z poniższych, w zależności od tego, czy jesteś na 64-bitowym lub 32-bitowym Ubuntu.
Dla 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
Lub dla 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/
Następnie ponownie zainstaluj poduszkę:
pip install --no-cache-dir -I pillow
(zmiany w celu uwzględnienia opinii z komentarzy. Dzięki Charles Offenbacher za wskazanie tego różni się od 32bit, A t-mart za sugerowanie użycia --no-cache-dir
).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-02 16:12:16
Dla tych na OSX, użyłem następujących binarnych, aby uzyskać libpng i libjpeg zainstalowany w całym systemie:
Ponieważ miałem już zainstalowany PIL (przez pip na virtualenv), uruchomiłem:
pip uninstall PIL
pip install PIL --upgrade
To rozwiązało decoder JPEG not available
Błąd dla mnie.
Aktualizacja (4/24/14):
Nowsze wersje pip wymagają dodatkowych FLAG do pobierania bibliotek (w tym PIL) ze źródeł zewnętrznych. Spróbuj:
pip install PIL --allow-external PIL --allow-unverified PIL
Patrz: odpowiedź na DODATKOWE info: pip install PIL dont install into virtualenv
Aktualizacja 2:
Jeśli na OSX Mavericks, będziesz chciał ustawić flagę ARCHFLAGS
jako @ RicardoGonzales komentarze poniżej :
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install PIL --allow-external PIL --allow-unverified PIL
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:59
To jedyny sposób, który mi pomógł. Instalacja pakietów i ponowna instalacja PIL nie zadziałały.
Na ubuntu zainstaluj wymagany pakiet:
sudo apt-get install libjpeg-dev
(Możesz również zainstalować libfreetype6 libfreetype6-dev zlib1g-dev
, aby włączyć inne dekodery).
Następnie zastąp PIL poduszką:
pip uninstall PIL
pip install pillow
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-04 11:36:37
Poniższe działa na 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
Gdy zobaczysz "-- JPEG support available", oznacza to, że działa.
Ale jeśli nadal nie działa podczas edycji obrazu jpeg, sprawdź ścieżkę Pythona !!
Moja ścieżka Pythona ominęła /usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/
, więc edytuję ~/.bashrc
Dodaj następujący kod do tego pliku:
Edit: export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-07 08:12:02
Na Fedorze 17 musiałem zainstalować libjpeg-devel
a potem ponownie zainstalować PIL
:
sudo yum install --assumeyes libjpeg-devel
sudo pip-python install --upgrade PIL
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-03 17:35:30
Odpowiedź Rolo jest doskonała, jednak musiałem ponownie zainstalować poduszkę omijając PIP cache (wprowadzony z pip 7), inaczej nie zostanie poprawnie skompilowany!!! Polecenie to:
pip install -I --no-cache-dir -v Pillow
I możesz sprawdzić, czy poduszka została poprawnie skonfigurowana, czytając w logach to:
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
--------------------------------------------------------------------
Jak widać Obsługa jpg, tiff i tak dalej jest włączona, ponieważ wcześniej zainstalowałem wymagane biblioteki przez apt (libjpeg-dev libpng12-dev libfreetype6-dev libtiff-dev)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-13 18:16:02
Na Mac OS X Mavericks (10.9.3), rozwiązałem to wykonując następujące czynności:
Install libjpeg by brew (System zarządzania pakietami)
Brew install libjpeg
Reinstall pillow (używam pillow zamiast PIL)
Pip install-i poduszka
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-05 20:16:19
apt-get install libjpeg-dev
apt-get install libfreetype6-dev
apt-get install zlib1g-dev
apt-get install libpng12-dev
Zainstaluj je i pamiętaj, aby zainstalować PIL z pip, ponieważ skompilowałem go ze źródła i z jakiegoś powodu nie działał
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-05 11:09:25
Już używałem Pillow
i dostałem ten sam błąd.
Próbowałem zainstalować libjpeg
lub libjpeg-dev
zgodnie z sugestią innych, ale powiedziano mi, że (nowsza) wersja jest już zainstalowana.
W końcu wystarczyło ponownie zainstalować Pillow
:
sudo pip uninstall Pillow
sudo pip install Pillow
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-20 13:34:07
Jestem zbyt newbie, aby komentować post zeantsoi ;(. Więc tutaj jego co musiałem zrobić, aby rozwiązać na OSX na 10.9.1
IOError: decoder JPEG niedostępny
1) install Xcode tools (otwórz terminal i wykonaj: xcode-select --install
) - zaczerpnięte z tego postu: nie można zainstalować PIL po Mac OS X 10.9
2) zainstaluj pakiet libpng i libjpeg (combo installer) z tego linku: http://ethan.tira-thompson.com/Mac_OS_X_Ports.html
3) reboot (Nie wiem, czy był obowiązkowy)
4) Zainstaluj ponownie PIL za pomocą run pip install -I PIL
(ponieważ wcześniej zainstalowałem PIL przed wystąpieniem problemu)
Mam nadzieję, że to pomoże i nie mylić więcej ...
_oho
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:47
To pytanie zostało opublikowane dość dawno temu i większość odpowiedzi jest dość stara. Więc kiedy spędziłem godziny próbując to rozgryźć, nic nie działało i próbowałem wszystkich sugestii w tym poście.
Wciąż otrzymywałem standardowe błędy JPEG podczas próby przesłania JPG w mojej formie awatara Django:
raise IOError("decoder %s not available" % decoder_name)
OSError: decoder jpeg not available
Potem sprawdziłem repozytorium dla Ubuntu 12.04 i zauważyłem kilka dodatkowych pakietów dla libjpeg
. Zainstalowałem je i mój problem został rozwiązany:
sudo apt-get install libjpeg62 libjpeg62-dev
Instalowanie tych usunięto libjpeg-dev
, libjpeg-turbo8-dev
, i libjpeg8-dev
.
Mam nadzieję, że to pomoże komuś w roku 2015 i Później!
Cheers
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-05 18:55:43
Ten sam problem tutaj, JPEG support available
ale nadal mam IOError: decoder/encoder jpeg not available
, tyle że używam poduszki a nie PIL.
Próbowałem wszystkich powyższych i więcej, ale powielu godzinach zdałem sobie sprawę, że używanie sudo pip install
nie działa tak, jak oczekiwałem, w połączeniu z virtualenv
. Głuptas ze mnie.
Użycie sudo
skutecznie uruchamia polecenie w nowej powłoce (moje zrozumienie tego może nie być do końca poprawne) gdzie virtualenv nie jest aktywowany, co oznacza, że pakiety zostaną zainstalowane w globalnej środowisko zamiast tego. (to wszystko popsuło, myślę, że miałem 2 różne instalacje poduszki.)
Posprzątałem, zmieniłem użytkownika na roota i ponownie zainstalowałem w virtualenv i teraz działa.
Mam nadzieję, że to komuś pomoże!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-16 20:02:55
Dla Fedory
Install pre-request sudo dnf install make automake gcc gcc-c++ kernel-devel rpm-build libjpeg-devel zlib-devel python-devel
Teraz zainstaluj poduszkę
sudo pip install pillow
Uwaga-dla libjpeg i Zlib instalujemy pakiety libjpeg-devel i Zlib-devel w Fedorze/CentOS/Red Hat
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-21 11:18:45
Najpierw musiałem usunąć foldery Pythona w ukrytym folderze user / appData (co powodowało ogromne bóle głowy), oprócz odinstalowania Pythona. Następnie zainstalowałem dystrybucję WinPython: http://code.google.com/p/winpython / który obejmuje PIL
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-05 22:51:22
Dla tych na Mac OS Mountain Lion, śledziłem anwser zeantsoi, ale to nie działa.
W końcu znalazłem rozwiązanie tego posta: http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/
Teraz z radością uruchamiam mój skrypt dla jpeg !
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-24 20:51:06