Загрузка изображения JPEG через Django отображает ошибку - PullRequest
2 голосов
/ 14 февраля 2012

Я запускаю приложение Django внутри virtualenv в Ubuntu с NGINX / FastCGI и пытаюсь загрузить изображение JPG в приложение администратора Django.

Я получаю эту ошибку: «Загрузите действительное изображение. Загруженный вами файл не был изображением или поврежденным изображением». Я могу загрузить изображение в формате GIF, поэтому проблема возникает только в формате JPEG.

Вот что я пробовал до сих пор:

1) Установите libjpeg62-dev перед PIL

pip uninstall pil
sudo apt-get libjpeg62-dev
pip install pil

В конце установки PIL я вижу:

PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
              [GCC 4.4.3]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available

Так что, похоже, есть поддержка JPEG. Я также провел ручной тест, чтобы проверить, и он подтвердил:

>>> from PIL import Image
>>> trial_image=Image.open("/path/to/my/image.png")
>>> trial_image.verify()

2) Аналогично подходу № 1 выше, но с указанием JPG_ROOT вручную:

pip uninstall pil
sudo apt-get libjpeg62-dev
pip install --no-install pil
vi /path/to/virtualenv/build/PIL/setup.py (JPG_ROOT = libinclude("/usr/lib"))
pip install pil

3) Испытай удачу с подушкой (вилка PIL)

pip uninstall pil
sudo apt-get libjpeg62-dev
pip install pillow    

Я использую Django в разделе. Я также пытаюсь остановить и запустить службу nginx после каждой установки PIL.

Пока что ни один из вышеперечисленных подходов не помог мне преодолеть указанное выше сообщение об ошибке в моем приложении Django на Ubuntu. Я могу просто загрузить тот же образ JPG на свой локальный компьютер разработчика (Mac OSX 10.6.5) с тем же приложением Django, так что я знаю, что это что-то с моим развертыванием в Ubuntu.

Любая помощь будет оценена!

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Ну, что вы знаете, я решил выйти из админа Django и снова войти в систему .... вдруг все работает нормально! Sheesh. Последнее, что я попробовал, это подход № 2 выше, так что если у кого-то возникла эта проблема, это ваше лучшее решение.

0 голосов
/ 12 августа 2014

Вы были близки.Но требуемая библиотека была другой.

Ответ, мне помог, здесь https://stackoverflow.com/a/23445746/1478569

...