【问题标题】:IOError: decoder jpeg not available when using PillowIOError:使用 Pillow 时解码器 jpeg 不可用
【发布时间】:2014-06-06 20:09:13
【问题描述】:

在有人说"sudo apt-get install libjpeg-dev" 或类似的话之前,我没有 sudo 访问权限。我在一个不允许我访问 sudo 的服务器上。所以我必须在我的本地目录中完成这一切。这是我能做到的唯一方法。

我需要一个 python 脚本来调整图像的大小。它适用于 png 文件,但适用于 jpeg 文件,并在标题中列出错误。

以下是我目前采取的步骤:

  1. 下载libjpeg-dev安装到$HOME/jpegtest,所以jpegtest/文件夹里面是lib/,include/等等
  2. 我手动下载了Pillow并解压到$HOME/Pillow
  3. 我将setup.py 字段编辑为JPEG_ROOTlibinclude(<absolute path to jpegtest>)
  4. 我构建并编译了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 recognizes JPEG encoder on install, but not use 的问题,听起来和我的很接近,所以我在那里尝试了解决方案:

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 一样,看看它在寻找什么路径。
  • 听起来你应该让系统管理员在服务器根目录上安装你需要的库。
  • 您确定您使用的 Python 解释器来自您的 Pythonbrew 设置,而不是包含的基本操作系统(可能在没有 JPEG 支持的情况下编译了 Pillow)?

标签: python pillow


【解决方案1】:

不要只下载您需要的库,而是尝试在本地的主文件夹中创建一个完整的 Python 环境:

$ wget http://www.python.org/ftp/python/[desired version of Python].tgz
$ tar xzf Python[version].tgz
$ cd python-[version]
$ ./configure
$ make altinstall prefix=~ exec-prefix=~

更新您的 PATH 变量,以便首先执行您的本地 Python:

$ PATH = /home/user/[pathtopython]:$PATH

获取pip,从中可以安装其他包:

$ curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
$ ./get-pip.py
$ pip install pillow

网址可能会有所不同。您可能仍然需要修改 setup.py - 我没有在类似 C 的库中使用过这种技术,所以我不确定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2013-02-21
    • 2012-06-21
    相关资源
    最近更新 更多