我在Mac OS X 10.7.5上通过apache服务的Django应用程序中使用matplotlib,但我不能让它为我绘制一个数字。我导入了导入matplotlib.pyplot as plt
,以及我视图中的行
plt.plot(x, y)
(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.
在我的apache error_log中。我担心我不知道setugid()
是什么,或者如何让我的应用允许运行它。
我的$MPLCONFIGDIR
设置为/tmp/.mplconfig
,apache为用户_www写了几个空目录,所以这似乎正常。
谁能给我一个线索?
更新:如果我
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
并设置一个图形,子图和轴(整个caboodle),我可以savefig()没有错误... pyplot需要什么额外的权限?
答案 0 :(得分:2)
导入matplotlib
后使用agg后端,摆脱了setugid()
Flask app
OS X Server
Sierra
内import matplotlib as mpl
mpl.use('agg')
错误
the spread operator can be applied only to iterable objects
答案 1 :(得分:0)
您还可以在~/.matplotlib/matplotlibrc
中为您的系统全局添加后端配置,例如:
backend: TkAgg
这也将解决您的问题。如果您没有matplotlibrc
,只需创建一个。