由于空EXTENSION数组,PIL的保存功能中的'未知扩展'

DAH*_*DAH 18 python python-imaging-library pillow

我对python很新,并且savePIL的Pillow fork 的功能有问题.

用这个最小的例子

import Image

im = Image.new("RGB", (200, 30), "#ddd")
im.save("image.png")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

File "/usr/lib64/python2.7/site-packages/PIL/Image.py", line 1667, in save
  raise KeyError(ext)  # unknown extension
KeyError: '.png'
Run Code Online (Sandbox Code Playgroud)

save函数中的相应行是

preinit()

[...]

try:
  format = EXTENSION[ext]
except KeyError:
  raise KeyError(ext)  # unknown extension
Run Code Online (Sandbox Code Playgroud)

我查看了EXTENSION数组并检测到它是空的,尽管它应该preinit()由例如初始化from PIL import PngImagePlugin.PngImagePlugin.py电话Image.register_extension("PNG", ".png").观察此函数内部或其内部的数组PngImagePlugin确实充满了文件扩展名.

print(EXTENSION)然后在try-except-block之前放置一个空EXTENSION数组.

(与函数中SAVE的几行相同的问题相同save.)

任何帮助表示赞赏.

编辑:我最近从OpenSuse 13.1升级.到13.2.它在13.1中运行良好,但在13.2中没有运行.

小智 12

你需要写这个:

from PIL import Image # Notice the 'from PIL' at the start of the line

im = Image.new("RGB", (200, 30), "#ddd")
im.save("image.png")
Run Code Online (Sandbox Code Playgroud)