Pillow 和 JPEG2000:解码器 jpeg2k 不可用

Pillow and JPEG2000: decoder jpeg2k not available

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

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

环境是 Docker,基于 15.10 Ubuntu 图像。 Python 版本为 2.7.10。 pip freeze 的枕头版本是 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

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

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

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

对于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