Немного фона из сборки PIL setup.py:
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.6.2 (release26-maint, Apr 19 2009, 01:58:18)
[GCC 4.3.3]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------
Это на установке Ubuntu 9.04.
Мне нужен только PIL, чтобы Django мог загружать и изменять размеры различных изображений (разных форматов). К сожалению, в настоящее время он не может обрабатывать JPEG. После выполнения PIL-файла selftest.py получилось следующее:
*** The _imaging C module is not installed
Я попытался импортировать Image и _imaging с помощью интерпретатора python -v (который работал) ...
>>> from PIL import Image
import PIL # directory PIL
# PIL/__init__.pyc matches PIL/__init__.py
import PIL # precompiled from PIL/__init__.pyc
# PIL/Image.pyc matches PIL/Image.py
import PIL.Image # precompiled from PIL/Image.pyc
[успешно продолжается довольно долго]
>>> import _imaging
dlopen("/usr/local/lib/python2.6/dist-packages/PIL/_imaging.so", 2);
import _imaging # dynamically loaded from /usr/local/lib/python2.6/dist-packages/PIL/_imaging.so
Таким образом, _imaging доступно при использовании интерпретатора python, но по некоторым причинам не импортируется должным образом в других случаях.
Я искал решения этой проблемы в течение последних нескольких часов и даже не приблизился к ее поиску. Я что-то упускаю глупо очевидное? Или есть идеи, почему это не работает?
Заранее спасибо!
Также: я знаю о http://effbot.org/zone/pil-imaging-not-installed.htm, но это только демонстрирует ошибку и не дает решения.
РЕДАКТИРОВАТЬ: Я слоняюсь вокруг, и кажется, что импорт _imagingmath является проблемой. Я сделал python -vv selftest.py, чтобы увидеть, где он ломался, и вот как это произошло:
dlopen("/usr/local/lib/python2.6/dist-packages/PIL/_imagingmath.so", 2);
import _imagingmath # dynamically loaded from /usr/local/lib/python2.6/dist-packages/PIL/_imagingmath.so
*** The _imaging C module is not installed
# clear __builtin__._
[etc. etc. etc.]