美文网首页Python程序员首页投稿(暂停使用,暂停投稿)
安装python库Pillow(PIL)出现问题及解决方法

安装python库Pillow(PIL)出现问题及解决方法

作者: jockerMe | 来源:发表于2016-05-25 10:40 被阅读18506次

    安装PIL,问题多多,现将出现问题,原因,以及解决方法总结如下:
    PIL的官方版本,但是最后一次维护是2009年,现以宣布停止维护,可以运行在python2.7上。
    PillowPIL的fork版本,还在继续维护更新,建议安装Pillow

    在安装Pillow之前,请卸载PIL

    sudo pip uninstall PIL

    安装Pillow 依赖,下面安装是真对ubuntu14.04版本

    libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk```
    

    下面介绍各包提供功能,以及需要的包版本限制(重要)

    ibjpeg provides JPEG functionality.

    1. Pillow has been tested with libjpeg versions 6b, 8, 9, and 9a and libjpeg-turbo version 8.
    2. Starting with Pillow 3.0.0, libjpeg is required by default, but may be disabled with the--disable-jpeg
      flag.

    zlib provides access to compressed PNGs

    1. Starting with Pillow 3.0.0, zlib is required by default, but may be disabled with the--disable-zlib
      flag.

    libtiff provides compressed TIFF functionality

    1. Pillow has been tested with libtiff versions 3.x and 4.0

    libfreetype provides type related services

    littlecms provides color management

    1. Pillow version 2.2.1 and below uses liblcms1, Pillow 2.3.0 and above uses liblcms2. Tested with 1.19 and 2.7.

    libwebp provides the WebP format.

    1. Pillow has been tested with version 0.1.3, which does not read transparent WebP files.
    2. Versions 0.3.0 and above support transparency.

    tcl/tk provides support for tkinter bitmap and photo images.

    openjpeg provides JPEG 2000 functionality.

    1. Pillow has been tested with openjpeg 2.0.0 and 2.1.0.
    2. Pillow does not support the earlier 1.5 series which ships with Ubuntu and Debian.

    在我的ubuntu14.04openjpeg版本过低,所以找到openjpeg的官方网站编译安装最新版的openjpeg

    1. 下载 openjpeg
    2. cd DownloadPath tar -xzvf Download file name
    3. cd Download file
    4. sudo cmake .
    5. sudo make
    6. sudo make install

    完成依赖安装后,使用命令sudo pip install Pillow安装Pillow

    Pillow 安装提示
    图片中的内容包括Pillow中的各个功能是否支持,如果这些功能出现unsupport ,那么就参考上面包提供功能,检测系统下依赖包是否满足Pillow的要求。
    最后打开python解释器,输入from PIL import Image如果成功导入,说明 安装成功。

    在我的ubuntu 14.04安装成功后,在导入仍然提示:[PIL - libopenjp2.so: cannot open shared object file: No such file or directory]这样的错误,在stackoverflow找到了解决方法:

    1. wheries libopenjp2 找到动态链接库的文件位置
    2. cd \etc ls -l |grep 'ld.so.conf' 找到ld.so.conf文件
    3. 编辑该文件,将libopenjp2库的路径,添加到ld.so.conf文件中
    4. sudo ldconfig
      下面是python找不到动态链接库的原因:以及设置 LD_LIBRARY_PATH有时不能良好解决问题的原因:

    sys.path is only searched for Python modules. For dynamic linked libraries, the paths searched must be in LD_LIBRARY_PATH. Check if your LD_LIBRARY_PATH includes /usr/local/lib, and if it doesn't, add it and try again.In Linux, the environment variable LD_LIBRARY_PATH is a colon-separated set of directories where libraries should be searched for first, before the standard set of directories; this is useful when debugging a new library or using a nonstandard library for special purposes. The environment variable LD_PRELOAD lists shared libraries with functions that override the standard set, just as /etc/ld.so.preload does. These are implemented by the loader /lib/ld-linux.so. I should note that, while LD_LIBRARY_PATH works on many Unix-like systems, it doesn't work on all; for example, this functionality is available on HP-UX but as the environment variable SHLIB_PATH, and on AIX this functionality is through the variable LIBPATH (with the same syntax, a colon-separated list).

    相关文章

      网友评论

      • Andyccc:使用pip unistall pil卸载的时候 一直抱错 提示没安装pil 但是import Image还能成功:sob:
        jockerMe:我没有出现这个问题,可以看下uninstall PIL 的错误提示,一般错误提示可以解决大部分问题,如果不熟悉环境搭建,可以尝试anaconda,这个集成了大部分python数据科学包,免去安装的麻烦,PIL也安装好了~
      • 82f1331a8a6e:应该将系统环境罗列出来
        jockerMe:谢谢提醒,下次注意

      本文标题:安装python库Pillow(PIL)出现问题及解决方法

      本文链接:https://www.haomeiwen.com/subject/unxtdttx.html