导入错误:无法加载需要“tk”交互框架的后端“TkAgg”,因为“headless”当前正在运行

马启森*_*马启森 22 python matplotlib python-3.x google-colaboratory

当我使用google colaboratory时,我遇到了这个问题,我在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
Run Code Online (Sandbox Code Playgroud)

出现了一个像标题这样的导入错误:“导入错误:无法加载后端 'TkAgg' 这需要 'tk' 交互式框架,因为 'headless' 当前正在运行”

小智 12

matplotlib.use('TkAgg')我通过更改为解决了该问题matplotlib.use('Agg')


joz*_*yqk 7

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

export MPLBACKEND=TKAgg
Run Code Online (Sandbox Code Playgroud)

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


Nic*_*ais 6

What solved the problem for me was to restart my kernel, import the following first:

import matplotlib
matplotlib.use('TKAgg')
Run Code Online (Sandbox Code Playgroud)

Then,

import matplotlib.pyplot as plt

You probably imported matplotlib with another framework before you tried to change to TKAgg. Restart your kernel.

  • 在 WSL、python3.8.5 上,我在遵循此操作时读到“ImportError: Cannot load backend 'TkAgg' which require 'tk' Interactive Framework, as 'headless' is current running” (5认同)

ran*_*man -2

错误消息清楚地说明了TkAgg需要tkinter库。

您可以通过在 matplotlib 之前导入 tkinter 库来修复此错误,例如:

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

  • 不需要显式“导入 tkinter” (5认同)