枕头和JPEG2000:解码器jpeg2k不可用

时间:2017-06-27 14:15:35

标签: python pillow jpeg2000

我正在尝试设置Flask-IIIF以使用jp2 - 文件或JPEG2000。开箱即用,我从Pillow库中收到错误:IOError: decoder jpeg2k not available

我尝试使用谷歌搜索,一个StackOverflow帖子告诉我确保libjpeg-devlibjpeg8-dev已安装并且是最新的,但它们已经安装完毕。在确定它们在那里之后,我确实尝试重新安装没有缓存的枕头:pip install --no-cache-dir -I pillow

环境是Docker,基于 15.10 Ubuntu 图像。 Python版本 2.7.10 。 pip冻结的枕头版本为 4.1.1

编辑:我还尝试了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

3 个答案:

答案 0 :(得分:2)

对于Linux

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

对于Windows

# download
import imageio
imageio.plugins.freeimage.download()
# install
pip uninstall pillow
pip install pillow

答案 1 :(得分:1)

Pillow需要OpenJPEG库来解码JPEG2000文件。 libjpeg只处理常规JPEG。

请参阅本节末尾的Pillow文档中的注释:http://pillow.readthedocs.io/en/latest/handbook/image-file-formats.html#jpeg-2000

答案 2 :(得分:0)

Windows用户: 在安装OpenJPEG并将其bin文件夹添加到PATH之后,您需要重新构建枕头库。使用Conda时,我没有找到解决方案,因此我最终将PyPi的Windows安装程序用作suggested in this answer here。安装程序找到了我的Anaconda安装程序,似乎只是覆盖了那里的枕头库。