Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pillow and JPEG2000: decoder jpeg2k not available

I'm trying to set up Flask-IIIF to work with jp2-files, or JPEG2000. Right out of the box I get an error from the Pillow library: IOError: decoder jpeg2k not available

I've tried googling it, and one StackOverflow post told me to make sure libjpeg-dev and libjpeg8-dev are installed and up to date, but they were already installed. After making sure they were there, I did try to reinstall pillow without cache: pip install --no-cache-dir -I pillow

The environment is Docker, based on a 15.10 Ubuntu image. Python version is 2.7.10. Pillow version from pip freeze is 4.1.1

edit: I also tried the other suggestion of Python Image Library fails with message "decoder JPEG not available" - PIL:

sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib

like image 852
oyblix Avatar asked Jun 27 '17 14:06

oyblix


3 Answers

for linux

sudo yum install -y libjpeg-devel
sudo pip uninstall pillow
sudo pip install pillow

for windows

# download
import imageio
imageio.plugins.freeimage.download()
# install
pip uninstall pillow
pip install pillow
like image 109
polonaise Avatar answered Nov 07 '22 23:11

polonaise


Pillow needs the OpenJPEG library to decode JPEG2000 files. libjpeg only deals with regular JPEGs.

See the note in the Pillow docs at the end of this section: http://pillow.readthedocs.io/en/latest/handbook/image-file-formats.html#jpeg-2000

like image 28
Rob Sanderson Avatar answered Nov 07 '22 23:11

Rob Sanderson


Windows users: After you installed OpenJPEG and added its bin folder to PATH, you need to re-build the pillow library. Using Conda I didn't find a solution to do that so I ended up using the windows installer from PyPi as suggested in this answer here. The installer found my Anaconda installation and it seems it simply overwrote the pillow library there.

like image 45
N4ppeL Avatar answered Nov 07 '22 23:11

N4ppeL