Ich benutze Matplotlib in einer Django-App durch Apache auf Mac OS X 10.7.5 serviert, aber ich kann es nicht zu einer Figur für mich plotten. Ich habe Import importiert matplotlib.pyplot as plt
, und die Linie meiner Ansicht nachsetugid() Fehler bei der Verwendung von Matplotlib mit Apache und Django
plt.plot(x, y)
(x
und y
sind numpy Arrays) den Fehler
2013-01-23 16:39:16.731 httpd[381:203] The application with bundle ID (null) is running setugid(), which is not allowed.
in meinem Apache error_log verursacht. Ich fürchte, ich weiß nicht, was setugid()
ist, oder wie man das Ausführen für meine App erlaubt. Meine $MPLCONFIGDIR
ist auf /tmp/.mplconfig
und Apache als Benutzer _www hat ein paar leere Verzeichnisse geschrieben, so dass scheint, funktioniert OK. Kann mir jemand einen Hinweis geben?
Update: wenn ich
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
und eine Figur, subplot und Achsen (der ganze Kram) eingerichtet ist, kann ich() ohne einen Fehler savefig ... was zusätzliche Berechtigungen erforderlich ist pyplot?
Weitere Informationen [hier] (https://blogs.oracle.com/dns/entry/understanding_the_authorization_framework_on). Scheint so, als würde eine Sicherheitseinstellung auf OS X dies verhindern und die schnelle Lösung scheint Apache als root auszuführen. – tiago
Danke für die Antwort Tiago. Ist der Apache als root aber durchaus weise? – xnx
In Linux/Unix wird Apache normalerweise als root gestartet, läuft aber als Benutzer 'nobody'. Ich weiß nicht, ob es klug ist oder nicht. – tiago