ImportError:无法加载需要“tk”交互式框架的后端“TkAgg”,因为“无头”当前正在运行
Posted
技术标签:
【中文标题】ImportError:无法加载需要“tk”交互式框架的后端“TkAgg”,因为“无头”当前正在运行【英文标题】:ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running 【发布时间】:2019-09-12 15:48:07 【问题描述】:当我使用google colaboratory时,我遇到了这个问题,我在***上搜索过,但很少有人回答,有谁能帮我弄清楚吗?谢谢!
我尝试了多种方式重新安装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 current running”
【问题讨论】:
【参考方案1】:解决问题的方法是重新启动我的内核,首先导入以下内容:
import matplotlib
matplotlib.use('TKAgg')
那么,
import matplotlib.pyplot as plt
在尝试更改为 TKAgg
之前,您可能使用另一个框架导入了 matplotlib。重新启动内核。
【讨论】:
有没有办法在不重启内核的情况下解决这个问题?【参考方案2】:matplotlib.use('TKAgg')
可能来得太晚了(?)。我成功设置了环境变量。
export MPLBACKEND=TKAgg
真的很奇怪的错误信息。我也在 docker 容器中尝试了这个,并且还必须设置 DISPLAY
。也许还有其他未报告的错误。使用 reload(matplotlib)
也没有帮助。
【讨论】:
这让我很开心!我有一个运行 python 脚本的 BASH 脚本,并在运行实际的 py 脚本之前添加了它。 试过这种方法没有成功:(还有什么想法吗?【参考方案3】:我一次又一次地重复 matplotlib.use('TkAgg') 来解决问题。这很奇怪,但对我有用!
import matplotlib
i = 0
while i < 10:
i += 1
try:
matplotlib.use('TkAgg')
break
except:
print(i)
【讨论】:
【参考方案4】:错误信息清楚地说明TkAgg
需要tkinter
库。
您可以通过在 matplotlib 之前导入 tkinter 库来修复此错误,例如:
import tkinter
import matplotlib
matplotlib.use('TkAgg')
【讨论】:
不需要明确import tkinter
我同意@gies0r,它既不能解决问题,也不需要明确添加。以上是关于ImportError:无法加载需要“tk”交互式框架的后端“TkAgg”,因为“无头”当前正在运行的主要内容,如果未能解决你的问题,请参考以下文章
markdown ImportError:没有名为'_tkinter'的模块,请安装python3-tk包
ImportError:无法加载指定的对象 - psycopg2
在 Python 中导入 Tkinter 时出现 ImportError [重复]
ImportError:DLL加载失败:操作系统无法运行%1。 Python 2.7.12 | Anaconda 4.2.0(64位)