安装PIL
,问题多多,现将出现问题,原因,以及解决方法总结如下:
PIL的官方版本,但是最后一次维护是2009年,现以宣布停止维护,可以运行在python2.7上。
PillowPIL
的fork版本,还在继续维护更新,建议安装Pillow
。
在安装Pillow之前,请卸载PIL
sudo pip uninstall PIL
安装Pillow 依赖,下面安装是真对ubuntu14.04版本
sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev \ libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk
下面介绍各包提供功能,以及需要的包版本限制(重要)
ibjpeg provides JPEG functionality.
- Pillow has been tested with libjpeg versions 6b, 8, 9, and 9a and libjpeg-turbo version 8.
- 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
- 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
- Pillow has been tested with libtiff versions 3.x and 4.0
libfreetype provides type related services
littlecms provides color management
- 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.
- Pillow has been tested with version 0.1.3, which does not read transparent WebP files.
- Versions 0.3.0 and above support transparency.
tcl/tk provides support for tkinter bitmap and photo images.
openjpeg provides JPEG 2000 functionality.
- Pillow has been tested with openjpeg 2.0.0 and 2.1.0.
- Pillow does not support the earlier 1.5 series which ships with Ubuntu and Debian.
在我的ubuntu14.04
中openjpeg
版本过低,所以找到openjpeg的官方网站编译安装最新版的openjpeg
cd DownloadPath
tar -xzvf Download file name
cd Download file
sudo cmake .
sudo make
sudo make install
完成依赖安装后,使用命令sudo pip install 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找到了解决方法:
wheries libopenjp2
找到动态链接库的文件位置 cd \etc ls -l |grep 'ld.so.conf'
找到ld.so.conf
文件libopenjp2
库的路径,添加到ld.so.conf
文件中sudo ldconfig
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).
2025 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123