decoder jpeg not available
d = Image._getdecoder(self.mode, d, a, self.decoderconfig) File "/usr/local/zope_env/lib/python2.4/site-packages/PIL/Image.py", line 385, in _getdecoder raise IOError("decoder %s not available" % decoder_name) IOError: decoder jpeg not available
なんだか見覚えがあるような気がして自ブログを検索すると2007年9月に記事を発見。
つまりはPILをmakeするときにjpegライブラリが見当たらなかったのでjpegサポートなしになっちゃったよってことです。
以前とは違ってPILはpipでインストールしているし、libjpegもyumでインストールしているのでなかなか小回りがききません。
まぁpipでもmakeのプロセスは動作するのでそのときにlibjpegが見えればいいんでしょう。
Linuxの64bit環境で yum install libjpeg-devel でインストールするとライブラリは/usr/lib64以下へ入ってきます。
$ ls -lt /usr/lib64/*jpeg* lrwxrwxrwx. 1 root root 17 9月 24 14:59 2012 /usr/lib64/libjpeg.so -> libjpeg.so.62.0.0 lrwxrwxrwx. 1 root root 17 8月 15 12:40 2012 /usr/lib64/libjpeg.so.62 -> libjpeg.so.62.0.0 -rwxr-xr-x. 1 root root 149936 1月 14 23:14 2010 /usr/lib64/libjpeg.so.62.0.0
そこでこれを/usr/libへリンクします。
# ln -s /usr/lib64/libjpeg.so.62.0.0 /usr/lib/libjpeg.so
それでもってpipでPILをuninstall,install。
# pip uninstall PIL # pip insatll PIL
これでOK。なんかもっとスマートな方法、pipが参照するライブラリを指定するなどできそうな気がするんだけど。