在服务器上调用import ImageFont时报如下错误

ImportError: The _imagingft C module is not installed

(服务器为Centos5.5, python版本2.7.3)

第一反应是pil安装的有问题,通过yum install freetype-devel libjpeg-devel libpng-devel

把依赖的相关库重新安装一遍,然后通过pip uninstall -y pil卸载pil,然后到http://effbot.org/downloads/Imaging-1.1.7.tar.gz下载源码包,修改set.py中JPEG_ROOT, ZLIB_ROOT,FREETYPE_ROOT等路径,然后执行

python setup.py build_ext -i

python setup.py build

python setup.py install

重新安装完问题依旧。

后来偶然发现官网的一篇文章:http://effbot.org/zone/pil-imaging-not-installed.htm,有所启发,首先判断_imaging是否正常安装,如果安装过程没有报错,在PIL的包下应该能找到,我的在/usr/local/python-2.7.3/lib/python2.7/site-packages/PIL/_imaging.so(文件名后缀因操作系统而异,比如_imaging.pyd或者_imaging.dll),下一步判断python是否能找到_imaging.so,这个通过python -v ,然后执行import Image显示的调试信息中找到_imaging.so是否被导入,如果到这一步都是ok的,那就说明是_imaing.so本身的问题了,果然在python中执行:import _imaing,提示

»> import _imaging

Traceback (most recent call last):

File “<stdin>”, line 1, in <module>

ImportError: libjpeg.so.7: cannot open shared object file: No such file or directory

说明系统在指定的目录找不到libjpeg.so.7这个库,而libjpeg是正常安装的,通过whereis libjpeg.so.7可以找到实际安装路径(/usr/local/lib/libjpeg.so.7),这时只需要在系统的搜索路径下建个软链接到实际安装路径即可(ln -s /usr/local/lib/libjpeg.so.7 /usr/lib/)

whereis libjpeg.so.7的更多相关文章

  1. nginx+mysql+php

    根据生产环境安装操作系统(centos 6.0 64位系统),安装完成后,使用Xshell通过ssh协议连接服务器.ssh 用户名@IP+回车+输入密码后登录系统.#mkdir -p /home/to ...

  2. CentOS下安装libjpeg库及编译GD库

    GD库明明安装了,可处理图片的时候还是报错 Fatal error: Call to undefined function imagecreatefromjpeg() .PHP安装后,默认的gd库不支 ...

  3. Linux下查找文件:which、whereis、locate、find 命令的区别

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.which       查看可执行文件的位置,通过环境变量查whereis    查看文件的位置,通过数据库查,每 ...

  4. linux常用命令-文件搜索命令-locate,which,whereis,grep

    locate 目录或文件名 -i 查找的时候不区分大小写 这个类似everything,速度比find快很多,因为这个命令搜索的是它维护的文件资料库,文件资料库是var/lib/mlocate/mlo ...

  5. Linux常用命令学习2---(文件搜索命令locate find、命令搜索命令whereis which、字符串搜索命令grep、帮助命令man)

     1.文件搜索命令:locate [文件名]    在后台数据库中按文件名搜索,搜索速度比find快,耗费资源更少    例子:locate test.txt,就会显示文件名包含 test.txt的所 ...

  6. 摘要: Linux下which、whereis、locate、find命令的区别

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了,所以放到这里方便使用. which    ...

  7. whereis 和which

    这两个命令用的好,可以很快找出文件的路径 [root@oc3408554812 zip-3.0]# which passwd/usr/bin/passwd[root@oc3408554812 zip- ...

  8. Linux下的五个查找命令:grep、find、locate、whereis、which

    原文转自 http://www.cnblogs.com/wanqieddy/archive/2011/07/15/2107071.html 1.grep grep(General Regular Ex ...

  9. 每天一个 Linux 命令(17):whereis 命令

    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息. 和find相比,whereis查找的速度非 ...

随机推荐

  1. Linux常用命令(个人使用频率较高)

    1,日志查看 tail(cat) -f|grep ERROR(任意字符) filepath (任意行数) -f|grep ERROR(任意字符) filepath 2,查看目录&授权 file ...

  2. Nginx httpS server配置

    Nginx httpS 配置 配置同时支持http和httpS协议: server { listen ; #backlog:每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包 ...

  3. selenium定位方式源码的存放位置

    find_element方法源码存在位置 by定位方法

  4. Avro之一:Avro简介

    一.引言 1. 简介 Avro是Hadoop中的一个子项目,也是Apache中一个独立的项目,Avro是一个基于二进制数据传输高性能的中间件.在Hadoop的其他项目中例如HBase(Ref)和Hiv ...

  5. 【LigerUI实战】Grid弹出编辑popup

    最近为分公司的项目做外援,做起了全栈的活.被公司自研架构磨灭的几乎忘掉了其他技能,正好新项目决定重新搭个架构,与同事们讨论过后,决定Spring+MyBatis+SpringMVC+CXF+Liger ...

  6. jsp数据显示分页

    从数据库获得数据就不写了,直接写如何进行分页,为了方便,把方法和实体类都写到一个java文件里面了 这只是一种简单的分页方法,肯能会有比较多的bug 这是java里的构造实体类和方法, public ...

  7. 微信小程序之工具js封装与使用

    工具库的创建与使用 创建一个common文件夹 在common文件夹中创建一个utils文件夹 在utils文件夹中创建util.js // 工具 function tool() { console. ...

  8. Three.js响应和移动物体

    效果图 demo import './index.css'; // stats var stats; (function(){ stats = new Stats(); document.body.a ...

  9. 转摘:ashx+jquery-autocomplete文本框输入提示功能Asp.net

    引入所需文件 <script type="text/javascript" src="JS/jquery-1.8.2.min.js"></sc ...

  10. grep家族

    grep家族由命令grep.egrep和fgrep组成. grep:在文件中全局查找指定的正则表达式,并且打印所有包含该表达式的行.egrep和fgrep是grep的变体.egrep:grep的扩展, ...