You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 10调用含Matplotlib的Python脚本报RuntimeError问题解决

Laravel 10 + Symfony Process调用含Matplotlib的Python脚本报错解决

环境

  • 本地服务:Laragon Full 6.0
  • PHP框架:Laravel 10
  • Python依赖:Matplotlib 3.8.0
  • 需求:Laravel项目中调用Python脚本并在浏览器返回结果

问题

  • 调用无Matplotlib的简单脚本(比如print("Hello World"))时,shell_exec()和Symfony Process都能正常运行
  • 一旦Python脚本导入Matplotlib,Symfony Process就会抛出:

    RuntimeError: Could not determine home directory

  • 但shell_exec()仍能正常执行脚本

无效尝试

手动设置HOME环境变量,问题未得到解决

解决方法

在Python脚本导入Matplotlib之前,通过os.environ指定MPLCONFIGDIR为项目内的自定义目录,让Matplotlib使用该目录存储配置文件,示例代码:

import os
# 替换为你项目中实际的可读写目录
os.environ['MPLCONFIGDIR'] = 'C:/laragon/www/your-project/storage/matplotlib-config'
import matplotlib.pyplot as plt

# 你的Matplotlib业务代码
plt.plot([1, 2, 3])
plt.savefig('output.png')

注意:要确保指定的目录存在且有读写权限,避免出现权限相关的新错误。

内容的提问来源于stack exchange,提问作者BennyVR75

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 19:10:55