Python 画像ライブラリが「デコーダ JPEG が利用できません」というメッセージで失敗する - PIL 質問する

Python 画像ライブラリが「デコーダ JPEG が利用できません」というメッセージで失敗する - PIL 質問する

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

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

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

これを解決するにはどうすればよいですか?

ベストアンサー1

libjpeg-dev は、pillow (または PIL) で jpeg を処理するために必要です。そのため、これをインストールして、pillow を再コンパイルする必要があります。また、Ubuntu 14.04 では libjpeg8-dev も必要なようです。

ただし、まだ PIL を使用している場合は、最近は pillow を使用する必要があるため、まずpip uninstall PILこれらの手順に従って切り替えてください。または、PIL を使い続ける正当な理由がある場合は、以下の「pillow」を「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

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

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 ビットでは異なることを指摘してくれた Charles Offenbacher 氏と、 の使用を提案してくれた t-mart 氏に感謝します--no-cache-dir)。

おすすめ記事