[Image-SIG] Pillow, the "friendly" PIL fork

Alex Clark aclark at aclark.net
Sun Aug 1 22:49:32 CEST 2010

On 8/1/10 3:04 PM, in article 4C55C525.9090809 at noaa.gov, "Christopher
Barker" <Chris.Barker at noaa.gov> wrote:

> Is packaging the only "issues" this fork is for?

Yes. In Plone-land we rely a great deal on packages on PyPI. Buildout is a
tool (which my 'Plone site admin' book covers in great detail, FWIW) we use
exclusively to build Plone CMS applications.

Using Buildout to install packages is more or less the equivalent of running
"easy_install SomePackage", only the result is an "instance" script with the
packages specified in the buildout packages added to the sys.path. E.g.:


import sys
sys.path[0:0] = [

If I list PIL in Buildout, I get the latest on PyPI (or some version I
specify) and it "breaks Zope" due to the issues we discussed.

As such, various alternative re-packages have appeared:

- http://download.zope.org/distribution/PILwoTk-
- http://dist.repoze.org/PIL-1.1.6.tar.gz
- http://dist.plone.org/thirdparty/PIL-1.1.7.tar.gz

Now, you can use Buildout to install PILwoTk quite easily simply by telling
Buildout where to find it, e.g.:

  find-links = http://download.zope.org/distribution/PILwoTk-

But it's not clear (to me at least) if the same is true of the re-packages
that are not *renamed* e.g.

That is because Buildout's default index is PyPI and it will always find PIL
there first (I think).

So, I wanted a fork, because I wanted to take the latest re-packaging (
http://dist.plone.org/thirdparty/PIL-1.1.7.tar.gz) and "release" it to PyPI.

Now I can specify the Pillow package in Buildout, and Buildout will find
"the right one". (Here's a simple Plone buildout example:

Let me parse the rest of your and Fredrik's comments, and let them sink in a
bit, and get back to youŠ

(This is a very helpful dialogue I think, thank you all!)

> -Chris

Alex Clark · http://aclark.net
Author ‹ Plone 3.3 Site Administration · http://aclark.net/admin

More information about the Image-SIG mailing list