在Django中生成数字的管道错误

时间:2015-01-14 03:20:00

标签: python django matplotlib

我正在测试使用测试服务器在本地运行的Django应用程序。

我的一个观点会将字典返回到其模板main.html

d = {'f1':'/f1.png','f2':'/f2.png'}
return render_to_response('myapp/main.html', d, context)

'/f1.png'中的每个网址(例如d)都会生成并返回一个数字:

canvas=FigureCanvas(fig)
response=HttpResponse(content_type='image/png')
canvas.print_png(response,dpi=400)
return response

在任一视图中都没有生成数字的错误。

但是,第二个数字有时无法在主页面上呈现(main.html)。

发生这种情况时,我从测试服务器收到以下错误:

"GET /url_for_my_app/f2.png HTTP/1.1" 500 59
error: [Errno 32] Broken pipe

我意识到这可能是由于浏览器请求的时间安排(例如,error: [Errno 32] Broken pipe)。

(1)在这种情况下可能导致错误的原因是什么?

(2)如何最好地解决?

编辑:我确定了明显的原因(但只是凭经验---我不知道它为什么会导致错误)。在返回plt.tight_layout()对象(在笔记本中运行的残差)之前,生成第二个数字的视图包含fig。 <{1}}被移除后,错误就消失了。

plt.tight_layout()

0 个答案:

没有答案