Matplotlib 不适用于 Linux。无法加载后端“TkAgg”

Edw*_*ric 7 python linux matplotlib

尝试在 Linux 上使用 Matplotlib,但我不断收到此错误:

ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running
Run Code Online (Sandbox Code Playgroud)

我在操作系统上使用虚拟环境:Linux 18.04 LTS。Python版本:3.6

我尝试了许多其他帖子建议的解决方案:

sudo apt-get install tk-dev libpng-dev libffi-dev dvipng texlive-latex-base
pip uninstall matplotlib
pip --no-cache-dir install matplotlib
Run Code Online (Sandbox Code Playgroud)

我试过摆弄使用 matplotlib 的 python 脚本:

#TOP OF FILE
import matplotlib
matplotlib.use('Agg') # or 'TkAgg', or removing the line altogether
import matplotlib.pyplot as plt
...
Run Code Online (Sandbox Code Playgroud)

运行 python 以查看正在使用的后端:

import matplotlib
matplotlib.get_backend()   # -> 'agg'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢

use*_*737 3

我在 macOS 上使用 iPython 时遇到了类似的问题并收到错误消息

matplotlib.use('TkAgg') 
Run Code Online (Sandbox Code Playgroud)

ImportError:无法加载需要“tk”交互式框架的后端“TkAgg”,因为“macosx”当前正在运行

我能够使用来展示我的情节

matplotlib.use('WebAgg') # shows in the browser
Run Code Online (Sandbox Code Playgroud)

或者

matplotlib.use('MacOSX') # shows on the desktop
Run Code Online (Sandbox Code Playgroud)

要获取所有可用后端的列表,我输入:

matplotlib.use('?')
...
Run Code Online (Sandbox Code Playgroud)

ValueError:无法识别的后端字符串'?':有效字符串为['GTK3Agg','GTK3Cairo','MacOSX','nbAgg','Qt4Agg','Qt4Cairo','Qt5Agg','Qt5Cairo','TkAgg',' TkCairo'、'WebAgg'、'WX'、'WXAgg'、'WXCairo'、'agg'、'cairo'、'pdf'、'pgf'、'ps'、'svg'、'模板']

另请参阅什么是后端?