在Mac OS系统上安装Python的Pillow库的教程


Posted in Python onNovember 20, 2015

今天帮朋友做个python的小工具,发现系统上缺少ptyhon的支持库,返回如下信息

ImportError: No module named PIL 
然后就下载安装,因为机器上也没有python的管理工具pip,所以也一并安装
1. 安装pip

sudo easy_install pip

pip 安装成功就可以直接安装pil或者pillow

2. 通过命令pip install pil

pip install Pil
Downloading/unpacking Pil 
 Could not find any downloads that satisfy the requirement Pil 
 Some externally hosted files were ignored (use --allow-external Pil to allow). 
Cleaning up... 
No distributions at all found for Pil 
Storing debug log for failure in /Users/macbook/Library/Logs/pip.log

3. 所以就安装pillow

pip install --use-wheel Pillow
Downloading/unpacking Pillow 
 Downloading Pillow-2.4.0.zip (6.5MB): 5.0MB downloaded 
Cleaning up...

弄了会别的回来发现还没有下载完,这叫一个慢呀,于是放弃
4. Git

通过git下载源码地址https://github.com/python-imaging/Pillow

git clone https://github.com/python-imaging/Pillow.git

然后开始编译安装

4.1

python setup.py build_ext -i

编译完之后会提示运行测试例子,并且发现JPEG support not available

-------------------------------------------------------------------- 
version   Pillow 2.4.0 
platform   darwin 2.7.5 (default, Aug 25 2013, 00:04:04) 
       [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] 
-------------------------------------------------------------------- 
--- TKINTER support available 
*** JPEG support not available 
*** OPENJPEG (JPEG2000) support not available 
--- ZLIB (PNG/ZIP) support available 
*** LIBTIFF support not available 
--- FREETYPE2 support available 
*** LITTLECMS2 support not available 
*** WEBP support not available 
*** WEBPMUX support not available 
-------------------------------------------------------------------- 
To add a missing option, make sure you have the required 
library, and set the corresponding ROOT variable in the 
setup.py script. 
 
To check the build, run the selftest.py script.

4.2 因为JPEG support not available,运行python selftest.py报告错误

1 tests of 57 failed. 

于是只好卸载pillow

可以通过pip命令来卸载

pip uninstall pillow 
sudo pip uninstall pillow
Password: 
Uninstalling Pillow: 
 /Library/Python/2.7/site-packages/Pillow-2.4.0-py2.7-macosx-10.9-intel.egg 
 /usr/local/bin/pilconvert.py 
 /usr/local/bin/pildriver.py 
 /usr/local/bin/pilfile.py 
 /usr/local/bin/pilfont.py 
 /usr/local/bin/pilprint.py 
Proceed (y/n)? y  
  Successfully uninstalled Pillow 

成功之后需要安装libjpeg的支持

brew install libjpeg

安装成功之后重新编译pillow

-------------------------------------------------------------------- 
version   Pillow 2.4.0 
platform   darwin 2.7.5 (default, Aug 25 2013, 00:04:04) 
       [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] 
-------------------------------------------------------------------- 
--- TKINTER support available 
--- JPEG support available 
*** OPENJPEG (JPEG2000) support not available 
--- ZLIB (PNG/ZIP) support available 
*** LIBTIFF support not available 
--- FREETYPE2 support available 
*** LITTLECMS2 support not available 
*** WEBP support not available 
*** WEBPMUX support not available 
-------------------------------------------------------------------- 
python selftest.py  

-------------------------------------------------------------------- 
Pillow 2.4.0 TEST SUMMARY  
-------------------------------------------------------------------- 
Python modules loaded from /Users/macbook/yyang/app-devel-source/python/Pillow/PIL 
Binary modules loaded from /Users/macbook/yyang/app-devel-source/python/Pillow/PIL 
-------------------------------------------------------------------- 
--- PIL CORE support ok 
--- TKINTER support ok 
--- JPEG support ok 
*** JPEG 2000 support not installed 
--- ZLIB (PNG/ZIP) support ok 
*** LIBTIFF support not installed 
--- FREETYPE2 support ok 
*** LITTLECMS2 support not installed 
*** WEBP support not installed 
-------------------------------------------------------------------- 
Running selftest: 
--- 57 tests passed.

最后执行安装

sudo python setup.py install
Python 相关文章推荐
python3音乐播放器简单实现代码
Apr 20 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
Nov 22 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
Nov 24 Python
PYTHON基础-时间日期处理小结
May 05 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
Jul 26 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
Oct 18 Python
python 如何去除字符串头尾的多余符号
Nov 19 Python
python如何基于redis实现ip代理池
Jan 17 Python
Django模板获取field的verbose_name实例
May 19 Python
你需要学会的8个Python列表技巧
Jun 24 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
Aug 07 Python
详解Python编程中time模块的使用
Nov 20 #Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
Nov 20 #Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 #Python
Python聚类算法之DBSACN实例分析
Nov 20 #Python
Python聚类算法之凝聚层次聚类实例分析
Nov 20 #Python
Python聚类算法之基本K均值实例详解
Nov 20 #Python
Python实现将xml导入至excel
Nov 20 #Python
You might like
PHP简介
2006/10/09 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
WordPress开发中用于标题显示的相关函数使用解析
2016/01/07 PHP
Zend Framework框架实现类似Google搜索分页效果
2016/11/25 PHP
JavaScript DOM 学习第九章 选取范围的介绍
2010/02/19 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
Python二元赋值实用技巧解析
2019/10/25 Python
python logging设置level失败的解决方法
2020/02/19 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
python如何查看网页代码
2020/06/07 Python
Python实现疫情地图可视化
2021/02/05 Python
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
C#面试问题
2016/07/29 面试题
Java面向对象面试题
2016/12/26 面试题
四风对照检查材料思想汇报
2014/09/20 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android