Python PIL加载抛出AttributeError:'NoneType'对象没有属性'read'

Joe*_*e J 3 python load python-imaging-library

几天来我一直在努力解决这个错误,但进展甚微.基本上,我正在尝试读取图像文件,然后使用PIL在其上执行特定操作.(我的最终目标是预先形成PIL粘贴操作).

但是,每当我加载我的图像,然后在其上调用load()方法(诸如show(),paste(),resize()等操作都会调用load()方法),我得到一个奇怪的NoneType没有属性读取错误.

我正在使用PIL 1.1.7并在OSX 10.6和Ubuntu 10.04上重现了这个错误.下面是我可以输入的最基本的ipython代码来产生错误.

以前有人见过这种情况吗?

任何帮助深表感谢.

In [1]: import os
In [2]: try:
   ...:     from PIL import Image
   ...: except ImportError:
   ...:     import Image
   ...: 
In [3]: from django.conf import settings
In [4]: bgImageFileHash = "d41d8cd98f00b204e9800998ecf8427e"
In [5]: bgImageFilePath = os.path.join(settings.MEDIA_ROOT,'uploads',"%s.jpg" % (bgImageFileHash)) 
In [6]: print bgImageFilePath 
------> print(bgImageFilePath )
/Users/test/Sites/env/mysite/proj/mysite/../mysite/media/uploads/d41d8cd98f00b204e9800998ecf8427e.jpg
In [7]: bgImageImage=Image.open(bgImageFilePath)
In [8]: bgImageImage.verify()
In [9]: bgImageImage.load()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/Users/test/Sites/env/mysite/proj/mysite/<ipython console> in <module>()
/Users/test/Sites/env/mysite/lib/python2.6/site-packages/PIL/ImageFile.pyc in load(self)
    168             read = self.load_read
    169         except AttributeError:
--> 170             read = self.fp.read
    171 
    172         try:
AttributeError: 'NoneType' object has no attribute 'read'
Run Code Online (Sandbox Code Playgroud)

Sax*_*uce 7

也许删除对verify()的调用,或者在verify()和load()之间再次调用open()?

)在验证机制的文档(这里说:

...如果在使用此方法后需要加载图像,则必须重新打开图像文件.