IOError:使用Pillow时解码器jpeg不可用

时间:2014-06-06 20:09:13

标签: python pillow

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

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

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

  1. 已下载libjpeg-dev并将其安装到$HOME/jpegtest,因此在jpegtest /文件夹中是lib /,包含/,依此类推
  2. 我手动下载了Pillow并将其解压缩到$HOME/Pillow
  3. 我修改了setup.py fild,JPEG_ROOT改编为libinclude(<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
    
  5. 所以我认为这意味着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
    

    但我仍然有同样的错误。

    我现在已经解决了这个问题大约两天了,我不知道该怎么做。如果有人能提供一些帮助,那将非常有帮助。

1 个答案:

答案 0 :(得分: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的库,所以我不确定。