Tôi đang sử dụng matplotlib trong một ứng dụng Django được phục vụ thông qua apache trên Mac OS X 10.7.5 nhưng tôi không thể làm cho nó âm mưu một con số cho tôi. Tôi đã nhập khẩu matplotlib.pyplot as plt
, và dòng trong quan điểm của tôi,setugid() lỗi bằng cách sử dụng matplotlib với apache và django
plt.plot(x, y)
(x
và y
là mảng NumPy) gây ra lỗi
2013-01-23 16:39:16.731 httpd[381:203] The application with bundle ID (null) is running setugid(), which is not allowed.
trong tôi apache error_log. Tôi e rằng tôi không biết setugid()
là gì hoặc cách chạy ứng dụng được phép cho ứng dụng của tôi. My $MPLCONFIGDIR
được đặt thành /tmp/.mplconfig
và apache khi người dùng _www đã viết một vài thư mục trống vào nó, để có vẻ như đang hoạt động OK. Có ai cho tôi một đầu mối không?
Cập nhật: nếu tôi
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
và thiết lập một con số, âm mưu phụ và trục (toàn bộ caboodle), tôi có thể savefig() mà không có lỗi ... những gì quyền phụ không pyplot cần?
Thông tin thêm [tại đây] (https://blogs.oracle.com/dns/entry/understanding_the_authorization_framework_on). Có vẻ như một thiết lập bảo mật trên OS X đang ngăn chặn nó, và sửa chữa nhanh chóng có vẻ là để chạy apache như là người chủ. – tiago
Cảm ơn bạn đã trả lời tiago. Mặc dù vậy, chạy apache là root hoàn toàn khôn ngoan? – xnx
Trong Linux/Unix apache thường được bắt đầu bằng root nhưng chạy như người dùng 'không ai'. Tôi không biết trong trường hợp cụ thể của bạn nếu nó khôn ngoan hay không. – tiago