Python PIL NameError全局名称图像未定义

时间:2013-12-07 16:45:15

标签: python python-imaging-library python-requests

我使用Python 2.7的可执行文件安装了PIL 1.1.7。但是当我运行这段代码时:

import requests
from PIL import *

def main() :
    target = "http://target/image.php" #returns binary data for a PNG.
    cookies = {"mycookie1", "mycookie2"}
    r = requests.get(target, cookies=cookies)
    im = Image.open(r.content) #r.content contains binary data for the PNG.
    print im

if __name__ == "__main__" :
    main()

它给出错误:

Traceback (most recent call last):
File "D:\Programming\Python\code\eg_cc1.py", line 17, in <module>
  main()
File "D:\Programming\Python\code\eg_cc1.py", line 13, in main
  im = Image.open(r.content)
NameError: global name 'Image' is not defined

我在Lib\site-packages安装了PIL。

3 个答案:

答案 0 :(得分:6)

使用

from PIL import Image

通过这种方式,您的代码将与Pillow向前兼容。另一方面,import Image will not work with Pillow

PIL的发展已于2011年年中停止,未经任何官方公告或解释。 Pillow是原始PIL的一个分支,并且正在积极开发。

答案 1 :(得分:5)

您需要显式导入Image模块:

>>> from PIL import *
>>> Image
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Image' is not defined
>>> import PIL.Image
>>> Image
<module 'Image' from 'c:\Python27\lib\site-packages\PIL\Image.pyc'>
>>>

或者只是

>>> import Image

答案 2 :(得分:0)

如果

import Image

无效。 尝试:

from PIL import Image

PIL 中的所有软件包都存在兼容性问题。尝试手动下载PIL包以获取最新版本。 实际上在 Python 3.2版本中使用它,一切正常。