2016-03-15 88 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