matplotlib ImportError:无法加载后端'TkAgg',它需要'tk'交互式框架,因为'headless'当前正在运行

sqxo8psd  于 2023-10-24  发布在  其他
关注(0)|答案(7)|浏览(654)

当我使用google collaboratory的时候,我遇到了这个问题,我在stackoverflow上搜索过,但是很少有人回答,有没有人能帮我解决这个问题?谢谢!
我试过用几种方法重新安装matplotlib,并安装tk-dev,所有这些都不起作用。

import matplotlib
import glob

**matplotlib.use('TKAgg')**

import matplotlib.image as mpimg

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.ticker as ticker

出现了一个类似标题的ImportError:“ImportError:Cannot load backend 'TkAgg' which requires the 'tk' interactive framework,as 'headless' is currently running”的ImportError。

j91ykkif

j91ykkif1#

我解决这个问题的方法是重启我的内核,首先导入以下内容:

import matplotlib
matplotlib.use('TKAgg')

然后

import matplotlib.pyplot as plt
在尝试更改为TKAgg之前,您可能已经使用其他框架导入了matplotlib。请重新启动内核。

yh2wf1be

yh2wf1be2#

我把matplotlib.use('TkAgg')改成了matplotlib.use('Agg'),解决了这个问题。

uurity8g

uurity8g3#

matplotlib.use('TKAgg')到达那里可能太晚了(?)。我成功地设置了环境变量。

export MPLBACKEND=TKAgg

非常奇怪的错误消息。我也在docker容器中尝试了这个,并且还必须设置DISPLAY。也许还有其他错误没有被报告。使用reload(matplotlib)也没有帮助。

xpszyzbs

xpszyzbs4#

pip install matplotlib==2.2.4这个版本比较稳定。

pu3pd22g

pu3pd22g5#

我一次又一次地重复matplotlib.use('TkAgg')来解决这个问题。这很奇怪,但对我来说很有效!

import matplotlib
i = 0
while i < 10:
    i += 1
    try:
        matplotlib.use('TkAgg')
        break
    except:
        print(i)
xv8emn3q

xv8emn3q6#

对我来说,我在windows上运行ubuntu和docker,这个错误的原因是我没有启动VCXsrv Windows X Server。当我启动X Server时,错误消失了。

zz2j4svz

zz2j4svz7#

错误消息清楚地解释了TkAgg需要tkinter库。
您可以通过在matplotlib之前导入tkinter库来修复此错误,例如:

import tkinter
import matplotlib
matplotlib.use('TkAgg')

相关问题