[Zope] Still can't get PIL working properly

Ed Leafe ed@leafe.com
Sun, 2 Feb 2003 11:11:19 -0500


Hi,

	I've followed the document at 
http://www.zope.org/Members/regebro/PIL_zope and gotten a lot of help 
from this list, and have made progress, but still cannot get it to work 
in Zope.

	At the end of the doc mentioned above, after all the compiling is 
done, it says to:

cp -r PIL *.so /the/zope/installation/lib/python/

to complete the installation. I did that, and still get the message 
that "The _imaging C module is not installed". I then did some Googling 
to see if something could shed light on this, and I found a (non-zope) 
site that recommended installing PIL in the [python]/site-packages 
directory, and to use "python -v" to help discover what was being 
loaded from where. So I tried that with the python 2.2 that RedHat 
installed, and ran "python -v" to start. The startup text included the 
version information "Python 2.2.1 (#1, Aug 30 2002, 12:15:30)". I then 
type the following, and got the following respose.

 >>> import PIL.Image
import PIL # directory /usr/lib/python2.2/site-packages/PIL
# /usr/lib/python2.2/site-packages/PIL/__init__.pyc matches 
/usr/lib/python2.2/site-packages/PIL/__init__.py
import PIL # precompiled from 
/usr/lib/python2.2/site-packages/PIL/__init__.pyc
# /usr/lib/python2.2/site-packages/PIL/Image.pyc matches 
/usr/lib/python2.2/site-packages/PIL/Image.py
import PIL.Image # precompiled from 
/usr/lib/python2.2/site-packages/PIL/Image.pyc
dlopen("/usr/lib/python2.2/site-packages/PIL/_imaging.so", 2);
import PIL._imaging # dynamically loaded from 
/usr/lib/python2.2/site-packages/PIL/_imaging.so
# /usr/lib/python2.2/site-packages/PIL/ImagePalette.pyc matches 
/usr/lib/python2.2/site-packages/PIL/ImagePalette.py
[remainder snipped]

	It's clear that the _imaging.so module is being referenced and loaded.

	Now if I do the same thing, but this time running [zopedir]/bin/python 
-v, it shows the version as "Python 2.1.3 (#1, Sep 19 2002, 13:15:46)". 
This time, trying to import PIL.Image results in:

 >>> import PIL.Image
Traceback (most recent call last):
   File "<stdin>", line 1, in ?
ImportError: No module named PIL.Image

	So I follow the lead of the regular python installation, and copy the 
PIL files to [zopedir]/lib/python2.1/site-packages. This time, I get a 
better response, but there is no reference to the _imaging.so module.

 >>> import PIL.Image
import PIL # directory 
/usr/local/zope/2-6-0/lib/python2.1/site-packages/PIL
# /usr/local/zope/2-6-0/lib/python2.1/site-packages/PIL/__init__.pyc 
matches 
/usr/local/zope/2-6-0/lib/python2.1/site-packages/PIL/__init__.py
import PIL # precompiled from 
/usr/local/zope/2-6-0/lib/python2.1/site-packages/PIL/__init__.pyc
# /usr/local/zope/2-6-0/lib/python2.1/site-packages/PIL/Image.pyc 
matches /usr/local/zope/2-6-0/lib/python2.1/site-packages/PIL/Image.py
import PIL.Image # precompiled from 
/usr/local/zope/2-6-0/lib/python2.1/site-packages/PIL/Image.pyc
# /usr/local/zope/2-6-0/lib/python2.1/lib-tk/FixTk.pyc matches 
/usr/local/zope/2-6-0/lib/python2.1/lib-tk/FixTk.py
import FixTk # precompiled from 
/usr/local/zope/2-6-0/lib/python2.1/lib-tk/FixTk.pyc
# 
/usr/local/zope/2-6-0/lib/python2.1/site-packages/PIL/ImagePalette.pyc 
matches 
/usr/local/zope/2-6-0/lib/python2.1/site-packages/PIL/ImagePalette.py
import PIL.ImagePalette # precompiled from 
/usr/local/zope/2-6-0/lib/python2.1/site-packages/PIL/ImagePalette.pyc
import array # dynamically loaded from 
/usr/local/zope/2-6-0/lib/python2.1/lib-dynload/array.so
# /usr/local/zope/2-6-0/lib/python2.1/string.pyc matches 
/usr/local/zope/2-6-0/lib/python2.1/string.py
import string # precompiled from 
/usr/local/zope/2-6-0/lib/python2.1/string.pyc
import strop # dynamically loaded from 
/usr/local/zope/2-6-0/lib/python2.1/lib-dynload/strop.so
# /usr/local/zope/2-6-0/lib/python2.1/types.pyc matches 
/usr/local/zope/2-6-0/lib/python2.1/types.py
import types # precompiled from 
/usr/local/zope/2-6-0/lib/python2.1/types.pyc
import operator # dynamically loaded from 
/usr/local/zope/2-6-0/lib/python2.1/lib-dynload/operator.so

	I've tried playing around with moving the files all over the place, to 
all different directories, and either I get the "not found" error, or I 
get something like the response above. Can anyone shed some light onto 
what I'm doing wrong?

      ___/
     /
    __/
   /
  ____/
  Ed Leafe
  http://leafe.com/
  http://opentech.leafe.com