Краткий ответ: удалить все версии файлов ligjpeg
dev, кроме 6.2.Удалите все версии PIL
.Установите последние sorl.thumbnail
и PIL-1.1.7
в virtualenv, используя pip
, чтобы PIL
компилировался с libjpeg6.2
.
Подробный ответ:
У меня было много проблем сэто на сайте, который я поддерживаю - оказывается, это произошло из-за конфликтов версий между PIL
, libjpeg
и sorl
- кто-то установил множество версий всех из них.Мне пришлось сократить его до одной установки PIL1.1.7
, libjpeg6.2
и sorl.thumbnail 11.9
Вот что я должен был сделать (это предполагает, что вы используете virtualenv. Если нет, хорошосейчас хорошее время для запуска):
yum erase python-imaging
о, подождите, он также был установлен с помощью easy_install, поэтому мне также нужно удалить PIL из пакетов сайта:
easy_install -mxN PIL
rm -rf /usr/lib/python2.6/site-packages/PIL /usr/lib/python2.6/site-packages/PIL.pth
Теперь я удаляюPIL из моего virtualenv
pip uninstall PIL
в версии pip, которую я использую, похоже, есть ошибка - мне нужно удалить вещи из dir virtualenv build, иначе pip не установит более позднюю версию
rm -rf /path/to/virtualenv/build/PIL/
теперь я должен удалить версии libjpeg, которые мне не нужны ... Вы, вероятно, должны сделать
apt-get remove libjpeg8 libjpeg8-dev
... или любое другое заклинание, необходимое.Конечно, если у вас есть другие вещи, которые зависят от этой версии libjpeg
, то вы попали в интересную ситуацию.Я уверен, что вы можете получить PIL
для установки и сборки под конкретную версию libjpeg
.Тогда, может быть, вы можете заставить libjpeg8
нормально работать с этим - пожалуйста, ответьте, если вы это сделаете.
На моей железной дороге на сервере были установлены файлы libjpeg7
и libjpeg8
dev из источника (кромев диспетчере пакетов установлена версия 6.2 - весело, а?), поэтому мне пришлось скачать исходные коды для libjpeg7
и libjpeg8
, запустить ./configure
и затем ./make uninstall
.В /usr/local/lib/
остались еще некоторые библиотеки, поэтому мне пришлось сделать rm /usr/local/lib/libjpeg*
.
Я должен был, вероятно, просто сделать последний бит, но хотел быть тщательным.
Проверьте, что естьникакие другие установки или остатки установок PIL
или libjpeg
в вашей системе.
Теперь вы можете начать заново ...
yum install libjpeg-devel
На этом старом потрепанном CentOS-боксе, который получает версию 6.2, которая лучше всего работает с PIL1.1.7
.В последних версиях Debian / Ubuntu вам нужно было бы запустить
apt-get install libjpeg62-dev
, теперь в моем приложении virtualenv
pip install PIL sorl-thumbnail
перезапустите веб-сервер.счастье.