Pillow is a better-packaged
version of PIL, the Python Imaging Library. There’s one problem you
can see, though, and that’s with importing. PIL allowed both import
Image
and from PIL import Image
. Pillow sanely only supports the
second version.
A colleague had a problem earlier today with TileStache that used the
old import Image
version. And that fails with Pillow. The solution
I suggested him was to add a little hack at the top of a file that’s
loaded early in the process (in this case a Django settings file was
the best spot):
import sys
from PIL import Image
sys.modules['Image'] = Image
This makes sure you get PIL.Image when you do import Image
afterwards. Problem solved.
Note: if both of the imports work for you without this hack, it can
be a good idea to check if you need to clean something up. Import both
versions and check their __file__
attribute:
>>> from PIL import Image
>>> Image.__file__
'/usr/lib/python2.7/dist-packages/PIL/Image.pyc'
>>> import Image
>>> Image.__file__
'/usr/lib/python2.7/dist-packages/PIL/Image.pyc'
In my case, I only have PIL, apparently. The colleague had a different result for the first import: that one was from Pillow, the second from PIL. Something to keep in mind if you have weird PIL-related results.
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):