The _imaging C module is not installed

http://effbot.org/zone/pil-imaging-not-installed.htm

为什么PIL 显式信息“The _imaging C module is not installed”

PIL 库主要包括两个部分,一系列的Python 模块,经常存储在一个PIL 子目录下,以及一个称为_imaging 的二进制扩展模块。根据平台和版本的不同,_imaging 存储在名为:_imaging.pyd,_imaging.dll 或 _imaging.so (或一些变动)的文件下。

如果Python 导入_imaging module失败,PIL 的一些部分仍然工作。你可以导入大部分的模块,打开和标志大部分的图像文件,但是,当你调用扩展某块提供的功能时,PIL 提交一个ImportError 错误。

 

检查办法:

1. 你是否有_imaging 模块?

在自己的\Lib\site-packages 文件夹下,或者全盘搜索上面提到的三个文件:_imaging.pyd 或 _imaging.dll ,Unix:_imaging.so 或 _imagingmodule.so 。一些Unix 平台可能有其它的一些扩展名(比如:.sl)。

 

2. Python 是否可以找到_imaging module?

对于所有其它的Python 模块,Python 在它的Python 模块儿路径下查找_imaging 模块,如果路径中无法找到该模块,Python 则不会加载它。

此时我们应该首先检查python 的路径是哪些。一种方法:

以python -v 启动 python:

之后输入命令 import 模块名

此时将显式你导入的模块所在的详细位置

另一个方法是,检查sys.path 变量,它是list,确保它的值是正确的:

import sys

print sys.path

如果想修改sys.path 的值,直接当作普通的list 进行修改即可。

3. Python 是否可以加载_imaging 模块?

如果上面的检查都通过了,可能是Python 找到的模块与当前的python 模块不兼容。比如,为Python的给定次要版本(例如2.1)构建的扩展仅适用于该版本或其修订版本( 例如2.1.2,但不是2.2)。

为了检查这个问题,直接打开IDLE输入如下命令:

import _imaging

如果module 不兼容,更早版本的Python 经常输出:"Unable to locate DLL"。Python 2.2 和之后的版本输出“Module use of PythonXX.dll conflicts with this version of Python."

还有一种可能,就是我们Win64 系统上的 64-bit Python 安装了32-bit 的PIL,此时,这条命令将提示:不是有效的32位程序,反过来类似。

 

如果你在Mandrake Linux得到"undefined symbol:ImagingRadianceEncode",你安装的是不完整的PIL build。应该从PythonWare 源构建PIL,或确保你安装的是最新的恰当的Mandrake 包。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值