web-dev-qa-db-ja.com

Python Image Libraryが「decoder JPEG not available」というメッセージで失敗する - PIL

私のシステムではPILはJPEGをサポートしています。

アップロードをするたびに、コードが失敗します。

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

どうすればこれを解決できますか?

301
Ravi

libjpeg-devはjpegsをpill(またはPIL)で処理できるようにするために必要であるため、それをインストールしてからpillを再コンパイルする必要があります。 Ubuntu 14.04ではlibjpeg8-devが必要と思われる

それでもPILを使用しているのであれば、最近は実際にピローを使用する必要があります。したがって、これらの指示に従う前にまずpip uninstall PILを切り替えるか、PILに固執する十分な理由があれば、以下)。

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

それでもうまくいかない場合は、64ビットUbuntuか32ビットUbuntuかに応じて、以下のいずれかを試してください。

Ubuntu x 64の場合:

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

それから枕を再取り付けします。

pip install --no-cache-dir -I pillow

(コメントからのフィードバックを含むように編集しました。これを指摘してくれたCharles Offenbacherには32ビットとは異なり、t-martには--no-cache-dirの使用を提案してくれました).

481
Rolo

OSXの人たちのために、私はlibpngとlibjpegをシステム全体にインストールするために次のバイナリを使いました:

OSXの場合はlibpng&libjpeg

私はすでにPILを(virtualenvのpip経由で)インストールしているので、私は走りました:

pip uninstall PIL
pip install PIL --upgrade

これは私にとってdecoder JPEG not availableエラーを解決しました。

UPDATE(4/24/14)

新しいバージョンのpipでは、外部ソースからライブラリ(PILを含む)をダウンロードするための追加のフラグが必要です。以下を試してください。

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

追加情報については、次の回答を参照してください。 pip install PILは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
63
zeantsoi

これが私のために働いた唯一の方法です。パッケージのインストールとPILの再インストールはうまくいきませんでした。

Ubuntuに必要なパッケージをインストールします。

Sudo apt-get install libjpeg-dev

(他のデコーダを有効にするためにlibfreetype6 libfreetype6-dev zlib1g-devをインストールすることもできます)。

それからPILを枕に取り替えます:

pip uninstall PIL
pip install pillow
28

以下は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

「 - JPEG support avaliable」と表示されていれば、動作しています。

しかし、あなたがあなたのjpeg画像を編集してもまだうまくいかない場合は、Pythonパスをチェックしてください。私の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/

それで、最後に、それはうまくいきます!

21
Jason Huang

Fedora 17では私はlibjpeg-develをインストールし、その後PILを再インストールしなければなりませんでした:

Sudo yum install --assumeyes libjpeg-devel
Sudo pip-python install --upgrade PIL
16
Bengt

ロロの答えは素晴らしいです、しかし、私はピップキャッシュ(ピップ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)を使って必要なライブラリをインストールしています。

14
daveoncode

Mac OS X Mavericks(10.9.3)では、次のようにしてこれを解決しました。

Libjpegをbrew(パッケージ管理システム)でインストール

libjpegをインストールする

枕を再取り付けします(私はPILの代わりに枕を使います)

ピップインストール - 私は枕

12
moogoo
apt-get install libjpeg-dev
apt-get install libfreetype6-dev
apt-get install zlib1g-dev
apt-get install libpng12-dev

これらをインストールし、ソースからコンパイルしたため何らかの理由で動作しなかったため、PILを必ずpipと共にインストールしてください。

11
EMP

私はすでにPillowを使用していて同じエラーを受け取りました。 libjpegまたはlibjpeg-devを他の人の提案どおりにインストールしようとしましたが、(新しい)バージョンが既にインストールされていると言われました。

結局、Pillowを再インストールするだけでした。

Sudo pip uninstall Pillow
Sudo pip install Pillow
9
Dimitris

Zeantsoiの投稿にコメントするにはあまりにも初心者なので、(10.9.1でOSXを解決するために私がしなければならなかったことは、

IOError:デコーダーjpegが利用できません

1)Xcodeツールをインストールします(端末を開いて実行します:xcode-select --install) - この投稿から取られた: Mac OSの後にPILをインストールできませんX 10.9

2)このリンクからlibpngとlibjpegパッケージ(コンボインストーラー)をインストールします。 http://ethan.tira-thompson.com/Mac_OS_X_Ports .html

3)再起動(必須であるかどうかわからない)

4)pip install -I PILを実行してPILを再インストールします(問題が発生する前に最初にPILをインストールしたのと同じ)

この助けを願って、もっと混乱しないでください...

_oho

3
oho

この質問はかなり前に投稿されたもので、ほとんどの回答もかなり古くなっています。だから私がこれを理解しようとするのに何時間も費やしたとき、何もうまくいきませんでした、そして私はこの記事ですべての提案を試みました。

私の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-devlibjpeg-turbo8-dev、およびlibjpeg8-dev

これが2015年以降の誰かに役立つことを願っています!

乾杯

2
nicorellius

ここでも同じ問題、JPEG support availableIOError: decoder/encoder jpeg not availableを取得しました。ただし、PILではなくPillowを使用します。

私は上記のことをすべて試しましたが、多数時間後にvirtualenvと組み合わせてSudo pip installを使用しても期待通りに動作しないことがわかりました。愚かな私.

Sudoを使用すると、新しいシェルでコマンドが効果的に起動されます(これは完全に正しくない場合があります)。代わりに、地球環境にインストールされます。 (これはめちゃくちゃだった、私は枕の2つの異なるインストールがあったと思う。)

私は物事をきれいにし、rootにユーザーを変更してvirtualenvに再インストールしました、そして今それは機能します。
うまくいけば、これは誰かに役立つでしょう!

1
kaka

Fedora用

前提条件のインストール
Sudo dnf install make automake gcc gcc-c++ kernel-devel rpm-build libjpeg-devel zlib-devel python-devel
今すぐPillowをインストールしてください

Sudo pip install pillow

注 - libjpegおよびzlibの場合、Fedora/CentOS/Red Hatにlibjpeg-develおよびzlib-develパッケージをインストールしています。

1
Ajinkya Bhosale

まず、Pythonをアンインストールすることに加えて、隠しフォルダuser/appData内のpythonフォルダを削除しなければなりませんでした(これは大きな頭痛の種となっていました)。それから私はWinPython Distributionをインストールしました。 http://code.google.com/p/winpython/ PILを含みます

0
Jill

Mac OS Mountain Lionの人たちのために、私はzeantsoiの先祖に従ったが、うまくいかない。

私はついにこの記事の解決策になった: http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/

今、私は喜んでjpegのための私のスクリプトを実行しています!

0
Zhenyi Zhang