decoder jpeg not available

Ploneサイトでjpeg画像を扱うとこんなエラー。

    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が参照するライブラリを指定するなどできそうな気がするんだけど。