Installing PIL on Lion
Getting PIL working on Lion was a little more difficult than I thought it’d be. (I use PIL in Ink to resize images.) It appeared to install correctly, but when I tried to post something with an image, I got this:
ImportError: The _imaging C module is not installed
I followed the instructions at appelfreelance.com, but libjpeg wouldn’t compile, giving me this error:
checking build system type... mkdir: /private/tmp/PKInstallSandbox.vMj5ds/tmp: No such file or directory
mkdir: /private/tmp/PKInstallSandbox.vMj5ds/tmp: No such file or directory
config.guess: cannot create a temporary directory in /private/tmp/PKInstallSandbox.vMj5ds/tmp
configure: error: cannot guess build type; you must specify one
Turns out TotalTerminal had oddly set $TMPDIR
to /private/tmp/PKInstallSandbox.vMj5ds/tmp
, which obviously broke other things. I cleared it out (export TMPDIR=
) and got libjpeg to compile.
But PIL still gave me this error when I tried to import _imaging
in Python to test it:
ImportError: dlopen(/Library/Python/2.7/site-packages/PIL/_imaging.so, 2): Symbol not found: _jpeg_resync_to_restart
Referenced from: /Library/Python/2.7/site-packages/PIL/_imaging.so
Expected in: flat namespace
Oh joy. When I ran otool -L /Library/Python/2.7/site-packages/PIL/_imaging.so
, libjpeg didn’t show up in the list, either. I recompiled and reinstalled libjpeg and PIL a few more times. No luck.
The final solution: I installed libjpeg via Homebrew (brew install libjpeg
), then compiled and installed PIL (Imaging 1.1.7). That fixed the _imaging.so
problem and PIL now works like a charm.