2016-03-15 69 views
1

我知道,類似的問題在這個主題中解決:錯誤與執行CGI腳本 - 可寫目錄matplotlib

Setting Matplotlib MPLCONFIGDIR: consider setting MPLCONFIGDIR to a writable directory for matplotlib configuration data

,但我有執行CGI腳本的問題。 我使用HTML fomular輸入一些數據,並根據這些數據通過statsmodels和結果將OLS模型打印爲HTML頁面。 如果我執行python腳本它給我這個錯誤:

http://textuploader.com/5nrhf

Basicaly我得到的錯誤 - Failed to create /var/www/.matplotlib; consider setting MPLCONFIGDIR to a writable directory for matplotlib configuration data

我紅你導入matplotlib和剎車確保目錄有權限之前設置MPLCONFIGDIR代碼

import os 
os.environ['MPLCONFIGDIR'] = "/home/lab/website/graph" 
import matplotlib 

:使得它可以由該應用這樣被寫入到
import os 
import tempfile 
os.environ['MPLCONFIGDIR'] =tempfile.mkdtemp() 
import matplotlib 

,但我不進口matplotlib模塊在我的劇本,只有CGIstatsmodels.apiMySQLdbnumpy

如果你想,這是我的CGI腳本 - http://textuploader.com/5nrx4

我不知道,如果我必須爲matplotlib文件夾設置權限,可以由我作爲CGI腳本的執行者寫入,或者以某種方式將matplotlib文件夾設置爲不同的路徑(可由我寫入)。順便說一句,我沒有自己的服務器,它只是學校服務器。

回答

0

你不顯式導入matplotlib,但statsmodels.api進口pandas,反過來pandas進口matplotlib(你可以看到所有THT通過你回溯閱讀)。

所以,你仍然需要有一個可寫的MPLCONFIGDIR才能運行你的腳本。您已經有答案如何做到這一點,但如果您想了解更多信息,有一些關於設置matplotlib環境變量的文檔here


在導入之前statsmodels.api它應該是不夠的,只是在文件中添加此:

import os 
os.environ['MPLCONFIGDIR'] = "/home/lab/website/graph" 
+0

嗯,也許愚蠢的問題,但我不WERY與Apache或Python,只是初學者experinced。我必須把這個: 'import os' 'os.environ ['MPLCONFIGDIR'] =「/ some/my/path」' 'import matplotlib' into pandas file which import matplotlib? 另外我看了鏈接,你寫的和我在窗口(設置環境變量)類似的東西,當我開始與python和localhost工作。 但我通過WinSCP連接到服務器,它使用'sh shell'。我嘗試'調用/ bin/sh'來運行shell,但給我錯誤,說實話,我不知道我是否正確地做,或者必須去服務器的管理員。 – koaxko

+0

看我的編輯。你不需要編輯熊貓文件 – tom