不能在Sikuli进口PIL

时间:2012-11-21 07:14:04

标签: python sikuli

我想在Sikuli导入PIL,因为我已经添加了下面的代码

import sys
sys.path.append("C:\\Python27\Lib\site-packages")
sys.path.append("C:\\Python27\Lib\site-packages\PIL")

import PIL
import Image

所以它导入了上面的模块,但是当我尝试导入ImageFont时,它给出了以下错误:

def getmask2(self, text, mode="", fill=Image.core.fill):
File "C:\Python27\Lib\site-packages\PIL\Image.py", line 39, in __getattr__
raise ImportError("The _imaging C module is not installed")
ImportError: The _imaging C module is not installed

我能够在Python脚本中成功导入PIL和Image和ImageFont,代码运行正常。 知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

Sikuli IDE使用Jython,因此安装到本地Python版本的软件包将无法在Sikuli IDE中导入,而Jython不支持c扩展,因为我知道哪个PIL需要(参见{{3 }})。

我认为您需要使用Java库,可能像ImageJ(参见http://bugs.jython.org/issue1388

答案 1 :(得分:3)

由于以下(因为我认为有价值的信息)被拒绝作为原始问题的编辑(我的意图:人们应该首先看到这一点),我现在把它作为答案:

我想补充一下: Python模块可以在Jython / Sikuli脚本中导入,只要它们只包含Python代码即可。有许多为Python编写的模块,它们具有这种条件(例如xlrd,xlwt)。但正如正确提到的:PIL包含基于C的东西,这通常(异常JNI库)不能被加载(因此上面的错误消息,这是真的,但可能导致错误的方向)。