今天在Python运行环境的服务器弄一个有关图像处理的程序时报这样的错:
1 |
NameError: global name 'Image' is not defined |
import Image 了下,发现原来 Python 并没有自带图像处理库,需要独立安装……查了下,Python常用的图像处理库叫PIL,可以使用 pip 安装,不错~于是在 用virtualenv 里敲入 pip install PIL。
安装很快完成,于是愉悦地刷新,等待程序的通过,结果又报错:
1 |
IOError: decoder jpeg not available |
Google了下,发现通过 pip 安装的 PIL 不会安装 jpeg 的解码器……检查了下安装日志,也有这样的说明:
01 |
-------------------------------------------------------------------- |
02 |
PIL 1.1.7 SETUP SUMMARY |
03 |
-------------------------------------------------------------------- |
05 |
platform linux2 2.7.5 (default, Sep 18 2013, 09:53:07) |
06 |
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] |
07 |
-------------------------------------------------------------------- |
08 |
*** TKINTER support not available |
09 |
*** JPEG support not available |
10 |
*** ZLIB (PNG/ZIP) support not available |
11 |
*** FREETYPE2 support not available |
12 |
*** LITTLECMS support not available |
13 |
-------------------------------------------------------------------- |
14 |
To add a missing option, make sure you have the required |
15 |
library, and set the corresponding ROOT variable in the |
JPEG support not available…… jpg都不支持,这是闹哪样……
于是只得手动安装了:
1 |
wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz |
2 |
tar xvfz Imaging-1.1.7.tar.gz |
下载并解压成功之后,到解压目录,找到 Imaging-1.1.7/setup.py 这个文件,修改下面几行代码(默认TCL_ROOT的设置为NONE,这里要传到系统库的路径才行):
1 |
TCL_ROOT = "/usr/lib64/" |
2 |
JPEG_ROOT = "/usr/lib64/" |
3 |
ZLIB_ROOT = "/usr/lib64/" |
4 |
TIFF_ROOT = "/usr/lib64/" |
5 |
FREETYPE_ROOT = "/usr/lib64/" |
6 |
LCMS_ROOT = "/usr/lib64/" |
再进行安装前的检查:
1 |
python /root/nowamagic_venv/Imaging-1.1.7/setup.py build_ext -i |
检查没问题,可以执行安装了:
1 |
python /root/nowamagic_venv/Imaging-1.1.7/setup.py install |
安装成功:
01 |
-------------------------------------------------------------------- |
02 |
PIL 1.1.7 SETUP SUMMARY |
03 |
-------------------------------------------------------------------- |
05 |
platform linux2 2.7.5 (default, Sep 18 2013, 09:53:07) |
06 |
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] |
07 |
-------------------------------------------------------------------- |
08 |
*** TKINTER support not available |
09 |
--- JPEG support available |
10 |
--- ZLIB (PNG/ZIP) support available |
11 |
--- FREETYPE2 support available |
12 |
*** LITTLECMS support not available |
13 |
-------------------------------------------------------------------- |
现在 jpg 已经被支持了,程序也执行成功,这里简单记录一下过程,方便后来者。顺便附带测试程序,用 Tornado 上传图片并生成缩略图:
05 |
class AsciiImageProcessHandler(tornado.web.RequestHandler): |
08 |
if self.request.files: |
09 |
for f in self.request.files['image']: |
10 |
rawname = f['filename'] |
11 |
dstname =str(int(time.time()))+'.'+rawname.split('.').pop() |
12 |
thbname = "thumb_"+dstname |
16 |
tf = tempfile.NamedTemporaryFile() |
21 |
# img = Image.open(src) |
22 |
img = Image.open(tf.name) |
23 |
img.thumbnail((920,920),resample=1) |
24 |
img.save("./static/upload/asciiimg/"+dstname) |
27 |
img.thumbnail((100,100),resample=1) |
28 |
img.save("./static/upload/asciiimg_tn/"+thbname) |
- ubuntu14.04 安装PIL库出现OError: decoder jpeg not available 的解决方案
出现 OError: decoder jpeg not available 的原因是,没有装JPEG的库,同时要支持png图片的话还要装 ZLIB.FREETYPE2.LITTLECMS的库文件. 先 ...
- Python PIL : IOError: decoder jpeg not available
The first thing I check when I got this error was to check if libjpeg was installed. Lets try this s ...
- exceptions.IOError: decoder jpeg not available
1.确保安装PIL所需的系统库 yum -y install zlib yum -y install zlib-devel yum -y install libjpeg yum -y install ...
- Python 读文件:IOError: [Errno 0] Error
Windows系统下,这种情况发生在读取文件,再写入过程中出现. 原因是读完文件后python不知道当前文件位置在哪里. 方法一是:在关闭文件前只做读或者写一种操作. 方法二是:在写入文件前使用fil ...
- Python,PIL压缩裁剪图片
自己写了用来压缩 DC 照片的,批量处理整目录文件,非常方便.需要安装 PIL #!/usr/bin/env python import Image import os import os.path ...
- Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
Python图像处理库:PIL中Image,ImageDraw等基本模块介绍 标签: 图像处理PILPYTHON 2016-08-19 10:58 461人阅读 评论(0) 收藏 举报 分类: 其他 ...
- Python:IOError: image file is truncated 的解决办法
代码如下: #coding:utf-8 from PIL import Image import pytesseract def test(): im = Image.open(r"pic. ...
- Python图像处理库:Pillow 初级教程
Python图像处理库:Pillow 初级教程 2014-09-14 翻译 http://pillow.readthedocs.org/en/latest/handbook/tutorial.html ...
- python PIL 图像处理操作
python PIL 图像处理 # 导入Image库 import Image # 读取图片 im = Image.open("1234.jpg") # 显示图片 im.show( ...
随机推荐
- IE8下提示'console'没有定义错误
在开发的过程中因为调试的原因,在代码中增加console.info("xxxx"),而未进行删除 在IE8下測试该代码所在的页面报错,例如以下: 须要注意的是,使用console对 ...
- 树莓派入手(烧写系统,调整分区,配置Java环境,串口GPS配置) 分类: Raspberry Pi 2015-04-09 21:13 145人阅读 评论(0) 收藏
原来的tf卡无故启动不起来,检查发现其文件系统分区使用率为0%. 数据全部丢失!!!!! 血的教训告诉我们备份文件系统的重要性,一切需要重头来.... 烧录系统 安装系统有两种方式, NOOBS工具安 ...
- ASP.NET图片验证码
1. 新建一个Validate.aspx,然后在Validate.aspx.cs编写代码: using System; using System.Collections; using System.C ...
- PL/SQL Select into 异常处理
在使用select into 为变量赋值时,如果变量是集合类型,不会产生异常,而如果是基本类型或记录类型,则会报异常. 异常产生了怎么办?当然是捕获并处理啦. 对于普通的代码块来说,在代码块的结尾处理 ...
- MyTask2
先把核心代码贴上 public void solve() { //Console.WriteLine("请输入你需要生成多少人的数据以及年龄最大值(75以内):"); //int ...
- 2017JAVA必读书籍
1.深入理解Java虚拟机:JVM高级特性与最佳实践 2.Oracle查询优化改写技巧与案例 3.Effective Java 4.Spring3.x企业应用开发实战 5.Spring技术内幕:深入解 ...
- [O] SQLite数据库报错:no such column
在SQLite数据库创建语句增加列,运行后报错:no such column 在语法规范的前提下,即 //SQLite数据库创建,逗号与空格须严格 String CREATE_NOTE = " ...
- eclipse中修改内存
- C#获取本机IP搜集整理7种方法
今天打算试着写个小聊天程序,但是要用到获取本机IP,以前从没用过.摆渡百度了一会儿,出于贪心,想把各种获取本机IP的方法给找出来.摆渡+测试了几个小时,于是有了下面的成果,有点小累,但看到这些成果,也 ...
- OpenCart本地调试环境搭建
OpenCart简介: 免费开源网络版电子商务系统,是建立在线商务网站首选之一.有众多用户和开发基础,结合其丰富特性与模板插件,可最大化定制在线商店.(也就是用来方便开网店的) 本地调试准备: Fir ...