Прежде чем кто-то скажет "sudo apt-get install libjpeg-dev"
или что-то в этом роде, у меня нет доступа к sudo. Я нахожусь на части сервера, который НЕ позволяет мне иметь доступ к sudo. Так что я должен сделать все это в своем локальном каталоге. Только так я могу это сделать.
Мне нужен скрипт python для изменения размера изображения. Он прекрасно работает с файлами png, но не работает с файлами jpeg из-за ошибки, указанной в заголовке.
Вот шаги, которые я предпринял до сих пор:
- Скачал
libjpeg-dev
и установил на$HOME/jpegtest
, поэтому внутри папки jpegtest/ находится lib/, include/ и т.д. - Я скачал
Pillow
вручную и распаковал в$HOME/Pillow
- Я отредактировал поле
setup.py
, чтобыJPEG_ROOT
сталоlibinclude(<absolute path to jpegtest>)
Я построил и скомпилировал
Pillow
, где он был установлен в$HOME//.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/Pillow-2.4.0-py2.7-linux-x86_64.egg
. Важная часть вывода выглядит следующим образом:*** TKINTER support not available --- JPEG support available *** OPENJPEG (JPEG2000) support not available --- ZLIB (PNG/ZIP) support available *** LIBTIFF support not available *** FREETYPE2 support not available *** LITTLECMS2 support not available *** WEBP support not available *** WEBPMUX support not available
Поэтому я бы предположил, что это означает, что поддержка JPEG будет работать, но когда я запускаю свою программу, она говорит:
IOError: декодер jpeg недоступен
При вводе этого я также заметил вопрос в Pillow распознает кодировщик JPEG на установить, но не использовать, что звучало очень близко к моему, поэтому я попробовал решение:
ln -s /media/sdl1/home/midnight/jpegtest/lib/libjpeg.so /media/sdl1/home/midnight/.pythonbrew/pythons/Python-2.7.5/lib
Но у меня все еще та же ошибка.
Я работаю над этой проблемой уже около двух дней, и я не совсем уверен, что делать. Если бы кто-нибудь мог предложить некоторую помощь, это было бы очень полезно.
ldd
, как в этом ответе stackoverflow.com/a/24397115/162768, и посмотрите, какой путь он ищет. - person Jason S   schedule 01.08.2014