Загрузка изображений не работает в сети, но PIL работает нормально в оболочке django - PullRequest
3 голосов
/ 09 ноября 2011

Не уверен, что именно я сломал. У меня есть Ubuntu Natty Linux-сервер, и на нем есть несколько virtualenv. Загрузка изображений в Django работала нормально на dev virtualenv, так что пришло время заставить его работать в производстве. PIL там плохо себя вел, поэтому я попытался удалить и переустановить несколько раз после манипулирования зависимостями libjpeg и в итоге выполнил следующие шаги: http://littlebrain.org/2011/08/21/installing-pil-in-virtualenv-in-ubuntu/

и теперь загрузка изображений прервана во всех virtualenvs.

В сводке настроек PIL сказано, что все должно работать:

--- TKINTER support available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
--- LITTLECMS support available

и когда я запускаю следующий тест в оболочке, он работает нормально, как с JPG, так и с PNG:

>>> import PIL
>>> import Image
>>> import _imaging
>>> i = Image.open("someimage.jpg")
>>> i
<JpegImagePlugin.JpegImageFile image mode=RGB size=600x599 at 0x9646C0C>
>>> i.load()
<PixelAccess object at 0x2b86510>

однако, когда я пытаюсь загрузить изображения в CMS, я получаю ужас:

Upload a valid image. The file you uploaded was either not an image or a corrupted image.

У кого-нибудь есть идея, что может пойти не так?

1 Ответ

0 голосов
/ 09 декабря 2011

Совет по отладке: добавьте некоторые операторы печати в ваш код (или добавьте ведение журнала) в том месте кода, где у вас возникают проблемы.

import sys
print sys.path
print PIL.__file__
print your_image_object
print type(your_image_object)

Подобные вещи.Возможно, это точно определит вашу проблему

Еще одна мысль: вы сказали, что установили pip в virtualenv.Активен ли ваш virtualenv при запуске через веб-сервер?

...