PIL obsługuje JPEG w moim systemie.
Za każdym razem, gdy przesyłam, mój kod nie działa z:
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ć?
Odpowiedzi:
libjpeg-dev jest wymagane, aby móc przetwarzać pliki JPEG z poduszką (lub PIL), więc musisz go zainstalować, a następnie ponownie skompilować poduszkę. Wydaje się również, że libjpeg8-dev jest potrzebny na Ubuntu 14.04
Jeśli nadal używasz PIL, powinieneś naprawdę używać poduszki dzisiaj, więc najpierw
pip uninstall PIL
wykonaj te instrukcje, aby przełączyć się, lub jeśli masz dobry powód, aby trzymać się PIL, a następnie zamień „poduszkę” na „PIL” poniżej ).W systemie Ubuntu:
Jeśli to nie zadziała, wypróbuj jedną z poniższych opcji, w zależności od tego, czy korzystasz z 64-bitowego czy 32-bitowego systemu Ubuntu.
W systemie Ubuntu x64:
Lub dla Ubuntu 32bit:
Następnie zainstaluj ponownie poduszkę:
(Zmiany uwzględniające informacje zwrotne z komentarzy. Podziękowania dla Charlesa Offenbachera za zwrócenie uwagi na to różni się w przypadku wersji 32-bitowej i t-mart za sugerowanie użycia
--no-cache-dir
).źródło
pip install
za pierwszym razem było to bardzo długie , ale późniejsze odinstalowania i (ponowne) instalacje były podejrzanie szybkie. W każdym razie powyższe metody nie działały dla mnie, dopóki nie uruchomiłempip install --no-cache-dir pillow
. Powodzenia!Dla tych na OSX, użyłem następującego pliku binarnego, aby uzyskać libpng i libjpeg zainstalowane w całym systemie:
libpng i libjpeg dla OSX
Ponieważ miałem już zainstalowany PIL (przez pip na virtualenv), uruchomiłem:
To rozwiązało
decoder JPEG not available
błąd dla mnie.AKTUALIZACJA (24.04.14) :
Nowsze wersje pipa wymagają dodatkowych flag do pobierania bibliotek (w tym PIL) ze źródeł zewnętrznych. Spróbuj wykonać następujące czynności:
Aby uzyskać dodatkowe informacje, zobacz następującą odpowiedź: instalacja PIL PIL nie instaluj w virtualenv
AKTUALIZACJA 2 :
Jeśli na OSX Mavericks, będziesz chciał ustawić
ARCHFLAGS
flagę jako komentarz @RicardoGonzales poniżej :źródło
To jedyny sposób, który działał dla mnie. Instalowanie pakietów i ponowna instalacja PIL nie działały.
Na Ubuntu zainstaluj wymagany pakiet:
(możesz także zainstalować,
libfreetype6 libfreetype6-dev zlib1g-dev
aby włączyć inne dekodery).Następnie zamień PIL na poduszkę:
źródło
pip install pillow --upgrade
.Poniższe działa na Ubuntu 12.04:
gdy zobaczysz „- Obsługa JPEG dostępna”, oznacza to, że działa.
Ale jeśli nadal nie działa, gdy edytujesz obraz JPEG, sprawdź ścieżkę do Pythona !! brakowało mojej ścieżki do Pythona
/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/
, dlatego edytuję~/.bashrc
następujący kod do tego pliku:Edytować:
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/
w końcu to działa !!
źródło
Na Fedorze 17 musiałem zainstalować,
libjpeg-devel
a następnie ponownie zainstalowaćPIL
:źródło
Odpowiedź Rolo jest doskonała, jednak musiałem ponownie zainstalować Pillow, omijając pamięć podręczną pip (wprowadzoną z pipem 7), w przeciwnym razie nie zostanie poprawnie skompilowana !!! Polecenie to:
i możesz zobaczyć, czy Poduszka została poprawnie skonfigurowana, czytając w dziennikach to:
jak widać obsługa jpg, tiff itd. jest włączona, ponieważ wcześniej zainstalowałem wymagane biblioteki przez apt (libjpeg-dev libpng12-dev libfreetype6-dev libtiff-dev)
źródło
W systemie Mac OS X Mavericks (10.9.3) rozwiązałem ten problem, wykonując następujące czynności:
Zainstaluj libjpeg by brew (system zarządzania pakietami)
zainstaluj ponownie poduszkę (używam poduszki zamiast PIL)
źródło
brew unlink jpeg && brew link jpeg
przed zainstalowaniem poduszki.Zainstaluj je i koniecznie zainstaluj PIL z pipem, ponieważ skompilowałem go ze źródła i z jakiegoś powodu nie działał
źródło
Już korzystałem
Pillow
i otrzymałem ten sam błąd. Próbowałem zainstalowaćlibjpeg
lublibjpeg-dev
zgodnie z sugestią innych, ale powiedziano mi, że (nowsza) wersja została już zainstalowana.Ostatecznie wystarczyło ponownie zainstalować
Pillow
:źródło
Jestem zbyt nowicjuszem, aby komentować post zeantsoi; (. Oto jego, co musiałem zrobić, aby rozwiązać na OSX 10.9.1
1) zainstaluj narzędzia Xcode (otwórz terminal i uruchom:)
xcode-select --install
- zaczerpnięte z tego postu: Nie można zainstalować PIL po Mac OS X 10.92) zainstaluj pakiet libpng i libjpeg (instalator kombi) z tego linku: http://ethan.tira-thompson.com/Mac_OS_X_Ports.html
3) uruchom ponownie (nie jestem pewien, czy było to obowiązkowe)
4) Ponownie zainstaluj PIL z uruchomieniem
pip install -I PIL
(ponieważ wcześniej zainstalowałem PIL przed wystąpieniem problemu)Mam nadzieję, że ta pomoc i nie mylić więcej ...
_oho
źródło
To pytanie zostało opublikowane dość dawno temu, a większość odpowiedzi jest również dość stara. Więc kiedy spędziłem godziny próbując to rozgryźć, nic nie działało i wypróbowałem wszystkie sugestie w tym poście.
Podczas próby przesłania pliku JPG w postaci awatara Django wciąż pojawiały się standardowe błędy JPEG:
Następnie sprawdziłem repozytorium dla Ubuntu 12.04 i zauważyłem dodatkowe pakiety dla
libjpeg
. Zainstalowałem je i mój problem został rozwiązany:Instalacja nich usunięte
libjpeg-dev
,libjpeg-turbo8-dev
ilibjpeg8-dev
.Mam nadzieję, że to pomoże komuś w roku 2015 i później!
Twoje zdrowie
źródło
Ten sam problem tutaj,
JPEG support available
ale nadal mamIOError: decoder/encoder jpeg not available
, z wyjątkiem tego, że używam Pillow, a nie PIL.Próbowałem wszystkich powyższych i więcej, ale po wielu godzinach zdałem sobie sprawę, że używanie
sudo pip install
nie działa zgodnie z oczekiwaniami, w połączeniu zvirtualenv
. Głupi ja.Użycie
sudo
skutecznie uruchamia polecenie w nowej powłoce (moje rozumienie tego może nie być całkowicie poprawne), w którym virtualenv nie jest aktywowany, co oznacza, że zamiast tego pakiety zostaną zainstalowane w środowisku globalnym. (To wszystko popsuło, myślę, że miałem 2 różne instalacje Pillow.)Oczyściłem rzeczy, zmieniłem użytkownika na root i ponownie zainstalowałem w virtualenv, a teraz działa.
Mam nadzieję, że to komuś pomoże!
źródło
Dla Fedory
Zainstaluj wstępnie wymagane
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 - W przypadku libjpeg i zlib instalujemy pakiety libjpeg-devel i zlib-devel w Fedorze / CentOS / Red Hat
źródło
Najpierw musiałem usunąć foldery Pythona w ukrytym folderze user / appData (które powodowały ogromne problemy), oprócz odinstalowania Pythona. Następnie zainstalowałem WinPython Distribution: http://code.google.com/p/winpython/, który zawiera PIL
źródło
W przypadku systemu Mac OS Mountain Lion podążyłem za odpowiedzią Zeantsoi, ale to nie działa.
W końcu udało mi się rozwiązać ten post: http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/
Teraz z radością uruchamiam skrypt dla JPEG!
źródło