难以从缓冲对象打开pylab图像

时间:2013-07-08 17:17:26

标签: python matplotlib

使用python 2.7在web2py中工作,我有类似的事情:

import matplotlib
matplotlib.use('Agg') 
import pylab
import Image
import io

temp_data = {'x':[1,2,3],'y':[2,4,5]}

pylab.plot(temp_data['x'], temp_data['y'])
img_buffer = io.BytesIO()
pylab.savefig(img_buffer, format = 'png')
Image.open(img_buffer)

这引发了

  

IOError - “无法识别图像文件”

在我的服务器的python安装(没有web2py)上尝试这个会产生相同的错误。在我的工作站的python shell上尝试这个(显然,Image模块与pylab冲突):

AccessInit: hash collision 3: for both 1 and 1

关于这里发生了什么的任何想法?感谢。

1 个答案:

答案 0 :(得分:1)

您必须在写入img_buffer之后并在阅读之前回放。{/ p>

pylab.savefig(img_buffer, format = 'png')
img_buffer.seek(0)
Image.open(img_buffer)