【Python笔记】图片处理库PIL的源码安装步骤

前段时间项目需要对某些图片打水印,用到Python的PIL库,本文以Imaging-1.1.7为例,记录PIL库的源码编译/安装步骤。

PIL全称Python Image Library,它支持多种图片格式的处理,能为我们的应用程序代理强大的图像处理能力,如裁剪、旋转、打水印等。

官网下载v1.1.7版本源码并解压后,cd至解压目录,读README可知,若想在应用中处理jpeg图片,需要预先安装jpeg库,否则使用时会报错。

1. 编译安装jpeg库

1.1 编译源码

jpeg库官网下载stable版本的jpeg源码(最新稳定版为v9a),解压源码的gz包,cd至解压目录,vi打开Makefile文件,修改2处:

1) 将prefix变量设置为jpeg库的安装目标路径

2) 在CFLAGS设置中追加-fPIC参数(关于PIC的作用,可通过man gcc了解或参见这里

注意:由于后面安装Imaging时,需要编译出一个_Imaging.so库文件,故这里必须设置-fPIC参数,否则Imaging编译时会报如下错误(想验证的话,可以试一试 -_-):

/usr/bin/ld: /home/slvher/python-2.7.5/3rd-lib-src/jpeg-6b/lib/libjpeg.a(jcparam.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/home/slvher/python-2.7.5/3rd-lib-src/jpeg-6b/lib/libjpeg.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

1.2 install-lib

以-fPIC参数编译完jpeg源码后,执行如下命令:

make install
make install-lib

以上命令将编译好的jpeg库"安装"至由prefix指定的路径下(其实就是从源码目录cp文件至prefix目录)

2. 安装Imaging库

cd至Imaging-1.1.7,vi打开setup.py,修改文件:

1) 注释掉JPEG_ROOT = None

2) 增加JPEG_ROOT = libinclude("/home/slvher/python-2.7.5/3rd-lib-src/jpeg-6b"),保存退出并执行如下命令:

python setup.py build_ext -i

正常情况下,Imaging库编译会成功

然后执行如下命令即可将PIL库安装到python的site-packages目录下:

python setup.py install

此后,应用程序就可以正常使用GIL库了

【参考资料】

1. PIL官网

2. PIL源码README文档

时间: 2025-01-17 08:51:11

【Python笔记】图片处理库PIL的源码安装步骤的相关文章

zabbix3.4源码安装步骤

zabbix3.4源码安装步骤1.安装环境: 安装机器:22.224.9.227 以下简称监控机: 操作系统信息:内核版本: Linux version 2.6.18-194.1.AXS3 ([email protected]) (gcc version 4.1.2 20080704 (Asianux 3.0 4.1.2-48)) #1 SMP Fri May 7 10:03:53 CST 2010 发行版本: Red Flag Asianux Server 3 for x86_64 (Quar

python语言线程标准库threading.local源码解读

本段源码可以学习的地方: 1. 考虑到效率问题,可以通过上下文的机制,在属性被访问的时候临时构建: 2. 可以重写一些魔术方法,比如 __new__ 方法,在调用 object.__new__(cls) 前后进行属性的一些小设置: 3. 在本库中使用的重写魔术方法,上下文这两种基础之上,我们可以想到函数装饰器,类装饰器,异常捕获,以及两种上下文的结构: 灵活运用这些手法,可以让我们在代码架构上更上一层,能够更加省时省力. 1 from weakref import ref # ref用在了构造大

源码安装步骤

把源码编译成二进制的可执行文件(自定义修改源代码,定制相关功能,附加额外选项) 编译器(gcc):安装 yum install -y gcc echo $?验证是否安装成功 成功输出为0 1)./configure 可定制相关功能(./configure -help)如果缺少相关库不能编译 只有通过后生成makefile文件. 2)make 根据makefile文件预设参数编译 (gcc工作) 3)make install  安装步骤,生成相关的软件存放目录和配置文件的过程. 1.下载源码包  

Linux+Apache2.4+PHP5.6+MySQL5.6源码安装步骤

一.安装Apache 若要安装apache服务器软件,需要安装以下几个依赖软件 apr-1.4.6.tar.gz 下载地址:http://apr.apache.org/ apr-util-1.4.1.tar.gz 下载地址:http://apr.apache.org/ pcre-8.20.tar.gz 下载地址:http://www.pcre.org/ httpd-2.4.10.tar.gz 下载地址:http://httpd.apache.org/download.cgi 将以上软件都下载到自

[整理]Linux下的源码安装步骤及其功能解释

源码的安装一般由3个步骤组成:配置(./configure).编译(make).安装(make install). 这时最常用的命令就是这三个--./configure && make && make install ./configure是用来检查环境变量以及配置编译选项 make是用来将源代码编译成二进制文件 make install则是将make编译出来的文件安装到指定位置(或默认位置) 深入理解查看这篇:http://www.jinbuguo.com/linux/u

Linux源码安装步骤

来源:https://www.cnblogs.com/benwu/articles/8436209.html 1. 获取源码 2. 查看INSTALL与README文件    (解压后查看INSTALL与README文件,这两个文件中详细介绍了本软件的安装方法和注意事项) 3. 创建Makefile文件    (执行configure命令,生成Makefile文件) 4. 编译     (执行make clean;make命令将源码编译成二进制文件.      PS:make clean命令用来

mysql5.7 源码安装步骤

操作系统:centos 7 mysql版本:5.7  下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 说明:以下都是root用户操作的. 一.数据库安装 1.查看系统是否有旧版的mysql # rpm -qa |egrep -i 'mysql|mariadb' 如果有的话请先卸载,卸载命令: # rpm -ev 软件包名称 2.查看老版本mysql相关的安装

【Linux笔记】samba源码安装及基本使用说明

前段时间项目中碰到从windows机器上传多媒体文件至linux服务器的需求(人工审核并触发同步),调研了几种上传机制或实现方案: 1) http方式上传至WebServer 用PHP或Python脚本上传给WebServer,但由于多媒体文件动辄几百兆,PHP由于最长执行时间的限制首先被排除,另外由于用脚本上传需要增加失败重试等控制逻辑,Python虽然可以实现这些功能,但考虑到开发成本及服务的稳定性,并不是最优方案 2) flash方式上传 例如百度云web端就使用了flash方式上传,通过

在 Linux 系统上源码安装 GTK+ 2.0

在 Linux 系统上源码安装 GTK+ 2.0==================================================Keywords: GTK+, Install, Linux, SourceAuthor:       whyglinux (whyglinux AT hotmail DOT com)Date:          2007-01-07==================================================目录0. 前言1.