Personal tools
You are here: Home なごぶろ PILがインストールされてなかった
About this blog
なごすいぶろぐ。「すべてはなごすいのために」。
Categories
COREBlog2 (31)
Zope (61)
Linux (26)
Misc (47)
Nagosui (11)
ReadingCOREBlog (7)
Plone (81)
Python (20)
Turbogears (18)
COREBlog1 (30)
moblog (5)
Django (12)
 
Document Actions

PILがインストールされてなかった

神様は「寝るな」とささやく

1個前のエントリで関連アイテムとしてイメージをアップしたのだけれども、これがどうも表示されなくてすごく困っていた。アップロードし直したり、表示する大きさを変えてみたり、テンプレートを眺めてみたり、いろいろしたけど直らなくてあきらめかけていたときに、サイト設定画面にてPILがインストールされてないとの指摘があるのに気づいた(「警告:PILが正しくインストールされていません。画像の拡大縮小ができません。」というメッセージが見える)。

あれ、PILはインストールしたはずなのにな、と思ってよくよく調べてみたら、実はPILをインストールしたのはこのZopeインスタンスでは使っていないPython2.3で、このZopeインスタンス用に別にインストールしたPython2.4の方にはインストールしてなかったという罠だった。

ということで、2.4は/usr/local/lib/python2.4にインストールしてあるので、

$ cd /usr/local/lib/python2.4/site-packages
$ wget http://effbot.org/downloads/Imaging-1.1.5.tar.gz
$ tar zxvf Imaging-1.1.5.tar.gz
$ cd Imaging-1.1.5
$ /usr/local/bin/python2.4 setup.py build_ext -i
$ /usr/local/bin/python2.4 selftest.py
  ----------------------------------------------------------------
  PIL 1.1.5 BUILD SUMMARY
  ----------------------------------------------------------------
  *** TKINTER support not available (Tcl/Tk 8.3 libraries needed)
  --- JPEG support ok
  --- ZLIB (PNG/ZIP) support ok
  --- FREETYPE support ok
  ----------------------------------------------------------------
  55 tests passed.
$ /usr/local/bin/python2.4python setup.py install

こんな感じでインストールが成功である(READMEに詳しく書いてあるので問題はないと思うけど、実際にはこれ以前にlibjpegなどのライブラリがシステムにインストールされている必要がある)。

これでリスタートすればサイト設定にてPILがちゃんとインストールされていることが確認できる。

PILがインストールされている場合

しかし、である。何だかおかしい…。変だ…。この後も依然として画像が表示されないのである。

htmlのソースを見てみると「width="0" height="0"」なんて書いてあるのでサイズに問題がありそうだという見当は付いたものの、COREBlog2のmedia_viewテンプレートとか調べてみても問題がどこにあるかわからない。もうあきらめようかな、と思ったそのとき!

あったああああああ!!!神様は私に徹夜をしろといっているのかどうかは不明だが、いつもこういうタイミングで発見することが多いのは何故だろうか…。

ZMIでplone-instance配下を徘徊していると、portal_atctの中に「Image scales」とかいうタブを発見。しかもここに書いてあるのだ。

Archetypes creates the scales of an image when the image data is uploaded.
If you have installed PIL later or if you have added/removed some scales you
have to create resp. recreate the scales. Please note that you shouldn't
remove a scale from the field definition. If you want to have a scale
removed set its value to (0, 0).
This function recreates the scales of the 'image' field of 
all portal types listed in image_types in the property tab.
Neither other portal types nor other fields are affected. The recreation
process is using a catalog query so make sure your catalog is up to date.

「もしPILを後からインストールしたり、スケールを追加・削除したりしたときは、スケールを再生成しなきゃいかんよ」ということらしい。そしてこの画面の下部には「recreate」というボタンがいらっしゃる。

まさに私の場合はPILをインストールしていない状態で画像をアップロードし、後からPILをインストールしたわけだから、このボタンを押す必要があるわけだ。なのでおもむろにボタンをポチッと押す。

これで無事画像が表示されるようになりました。めでたしめでたし。

Category(s)
Zope Zope
Plone Plone
The URL to Trackback this entry is:
http://nagosui.org/Nagosui/COREBlog2/not-installed-pil/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
Enter the word