使用matplotlib与apache和django的setugid()错误

xnx*_*xnx 5 apache django macos matplotlib

我在Mac OS X 10.7.5上通过apache服务的Django应用程序中使用matplotlib,但我不能让它为我绘制一个数字.我导入了导入matplotlib.pyplot as plt,在我看来,

plt.plot(x, y)
Run Code Online (Sandbox Code Playgroud)

(x并且y是numpy数组)导致错误

2013-01-23 16:39:16.731 httpd[381:203] The application with bundle ID (null) is running setugid(), which is not allowed.
Run Code Online (Sandbox Code Playgroud)

在我的apache error_log中.我担心我不知道是什么setugid(),或者如何让我的应用程序允许运行它.当用户_www写了几个空目录时,我$MPLCONFIGDIR的设置为/tmp/.mplconfig和apache,所以这似乎工作正常.任何人都可以给我一个线索吗?

更新:如果我

from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
Run Code Online (Sandbox Code Playgroud)

并设置一个图形,子图和轴(整个caboodle),我可以savefig()没有错误... pyplot需要什么额外的权限?

小智 3

导入后使用 agg 后端matplotlib消除了运行中setugid()的错误Flask appOS X ServerSierra

import matplotlib as mpl

mpl.use('agg')
Run Code Online (Sandbox Code Playgroud)