背景
博主是deepin的linux系统,在使用matplotlib进行绘制的时候,出现以下报错:
Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure
本文将对其进行解决
问题分析
提示为non-gui,一些资料中提到是tkinter的问题。博主使用的pyenv,在这个python的虚拟环境中的确是可能缺少这样的依赖。
一些资料显示,直接通过sudo apt install python-tk
可以进行解决。
分析:
- apt安装为系统性,会直接影响系统环境的python,而非直接影响pyenv
- 博主由于版本兼容问题,上述命令直接报错
所以我们需要的是影响到pyenv环境的方法
问题解决方法
sudo apt install tk-dev
- 然后重新通过pyenv安装编译指定的python版本(当然,之前装过的依赖库都需要重新安装一下)
- 重新安装依赖库的快捷方法
# 导出之前安装的所有依赖库
pip freeze > requirement.txt
# 重新编译并且安装完python后,直接进行依赖库的全部安装
pip install -r requirement.txt
注:这里所提到的重新安装python,是指的用pyenv命令进行卸载和重装:
- pip uninstall 3.6.8
- pip install 3.6.8(这里会重新依赖系统环境进行编译python)