设置Matplotlib MPLCONFIGDIR:考虑将MPLCONFIGDIR设置为matplotlib配置数据的可写目录

Mun*_*ong 9 matplotlib

我正在使用Linux服务器来设置django项目.我收到此错误:"无法创建/var/www/.matplotlib;请考虑将MPLCONFIGDIR设置为matplotlib配置数据的可写目录"

然后我发现$ MPLCONFIGDIR是空的.所以我这样设置:

lab@base:~$ export MPLCONFIGDIR=~/website/graph
lab@base:~$ echo $MPLCONFIGDIR
/home/lab/website/graph
Run Code Online (Sandbox Code Playgroud)

此路径是我想要存储由Matplotlib创建的图像的目录.然后我在python命令行中确保了这个设置:

>>> import matplotlib
>>> import os
>>> os.environ.get('MPLCONFIGDIR')
'/home/lab/website/graph'
Run Code Online (Sandbox Code Playgroud)

但是,在使用mod_wsgi在Apache中部署的django项目中,上述错误仍然存​​在.我添加了以下几行:

import os
os.environ['MPLCONFIGDIR'] = "/home/lab/website/graph"
print(os.environ.get('MPLCONFIGDIR'))
Run Code Online (Sandbox Code Playgroud)

它打印"无"!

谁能帮我?

谢谢.

Est*_*ban 20

在导入matplotlib之前,请在代码中设置MPLCONFIGDIR.确保该目录具有权限,以便应用程序可以写入该目录.

import os
os.environ['MPLCONFIGDIR'] = "/home/lab/website/graph"
import matplotlib
Run Code Online (Sandbox Code Playgroud)

或者,您可以将其设置为临时文件.

import os    
import tempfile
os.environ['MPLCONFIGDIR'] = tempfile.mkdtemp()
import matplotlib
Run Code Online (Sandbox Code Playgroud)

  • 如果您碰巧正在使用 AWS Lambda,就像我来寻找答案时一样,请改用 `/tmp` 文件夹。 (2认同)