Django和Matplotlib:信号仅适用于主线程

时间:2014-10-21 21:52:11

标签: python django matplotlib

在我的Django项目的views.py中,在代码中的某个点,我想在服务器上显示一个图形图,以实时显示用户输入。因此,我在与plotter.py相同的文件夹中创建了另一个文件views.py,其中包含以下内容以显示简单的图表:

导入numpy import matplotlib.pyplot

def plot():
    N = 50
    x = numpy.random.rand(N)
    y = numpy.random.rand(N)
    colors = numpy.random.rand(N)
    area = numpy.pi * (15 * numpy.random.rand(N))**2
    matplotlib.pyplot.scatter(x, y, s=area, c=colors, alpha=0.5)
    matplotlib.pyplot.show()

然后,在views.py,我import plotter,然后在文件中我想要的位置,我有plotter.plot()。但是,这会产生以下错误:

Request Method:     POST
Request URL:    http://localhost:8000/teacher/
Django Version:     1.7
Exception Type:     ValueError
Exception Value:    

signal only works in main thread

Exception Location:     C:\Anaconda\lib\site-packages\matplotlib\backends\backend_qt5.py in mainloop, line 150
Python Executable:  C:\Anaconda\python.exe
Python Version:     2.7.8

如何在不造成这种错误的情况下实现这一目标?

1 个答案:

答案 0 :(得分:6)

按如下方式运行您的服务器

python manage.py runserver --nothreading --noreload