После апгрейда на Ubuntu 11.04 для новых виртуальных окружений начали появляться ошибки Upload a valid image. The file you uploaded was either not an image or a corrupted image в админке django'и для полей с ImageFields и их производных.
После небольших изысканий обнаружилась еще одна ошибка - IOError: decoder zip not available.
Оказываться PIL собрался (установленный через pip) без поддержки JPEG, ZLIB, FREETYPE2.
PIL 1.1.7 SETUP SUMMARY *** JPEG support not available *** ZLIB (PNG/ZIP) support not available *** FREETYPE2 support not available
Для исправления нужно скачать сорцы PIL и в setup.py
wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz tar -xzvf Imaging-1.1.7.tar.gz cd Imaging-1.1.7 vim setup.py
внести небольшие правки
FREETYPE_ROOT = "/usr/lib/i386-linux-gnu/" JPEG_ROOT = "/usr/lib/i386-linux-gnu/" TIFF_ROOT = "/usr/lib/i386-linux-gnu/" ZLIB_ROOT = "/usr/lib/i386-linux-gnu/"
После этого выполнить
python setup.py install
Для установки всех зависимостей (необязательно)
sudo apt-get build-dep python-imaging
Другая ошибка с которой я сталкивался - ImportError: The _imagingft C module is not installed. Для исправления нужно было установить пакет libfreetype6-dev под Ubuntu.
sudo apt-get install libfreetype6-dev
После этого переустановить PIL, с помощью pip или из сорцов.
Как вариант можно установить Pillow, форк PIL, с более активным циклом обновлений.