私のシステムでは、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
)。