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

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

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

  1. import matplotlib
  2. import glob
  3. **matplotlib.use('TKAgg')**
  4. import matplotlib.image as mpimg
  5. import matplotlib.pyplot as plt
  6. import matplotlib.patches as patches
  7. 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#

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

  1. import matplotlib
  2. matplotlib.use('TKAgg')

然后

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

yh2wf1be

yh2wf1be2#

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

uurity8g

uurity8g3#

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

  1. export MPLBACKEND=TKAgg

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

xpszyzbs

xpszyzbs4#

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

pu3pd22g

pu3pd22g5#

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

  1. import matplotlib
  2. i = 0
  3. while i < 10:
  4. i += 1
  5. try:
  6. matplotlib.use('TkAgg')
  7. break
  8. except:
  9. print(i)
xv8emn3q

xv8emn3q6#

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

zz2j4svz

zz2j4svz7#

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

  1. import tkinter
  2. import matplotlib
  3. matplotlib.use('TkAgg')

相关问题