Python与Zope:模块在Python中可导入但在Zope中不可用
我安装了一个叫做Image的模块,链接是http://www.pythonware.com/products/pil/。然后我在Python解释器中尝试导入它,结果成功了:
>>> import Image
>>>
但是当我在Zope的DTML页面中尝试导入这个模块时:
DTML页面的样子是:
<dtml-var import_image>
这个页面调用了这个脚本:
def import_image(self):
import Image
im = Image.open("/home/rv/Desktop/blah.jpg")
return im
然后我就遇到了这个错误:
“ImportError: No module named Image”,我明明在Python解释器中可以导入它,为什么在这里却找不到这个模块呢?
补充说明
这个Python脚本在Zope的扩展文件夹里。
2 个回答
1
在Zope的Python脚本中,你不能随便导入任何模块。Zope有一些安全限制。在你的情况下,你需要在 %zope-instance%/Extensions 目录下创建一个外部方法。
或者 可能是你的Zope实例找不到这个库,因为它在另一个Python环境中运行。你应该检查一下 %zope-instance%/bin/zopectl 中的所有参数是否正确。
2
试试:
import PIL.Image
而不是:
import Image
Zope有一个图像模块,你可能会遇到命名空间冲突。