如何在Win11下的WSL2中显示matplotlib windows?

How to show matplotlib windows in WSL2 under Win11?

当我尝试通过 show() 显示来自 Python 3 的 matplotlib window 时,出现以下错误:

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

所以在 SO 上关注各种线程,我尝试了以下操作:

import matplotlib
matplotlib.use("TkAgg")

Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running

我也用matplotlib.use("QtAgg")试过,导致类似的错误:

Cannot load backend 'QtAgg' which requires the 'qt' interactive framework, as 'headless' is currently running

所以似乎无论我尝试什么后端,matplotlib 都认为它处于无头模式。但是,我可以在 Win11 下 运行 来自该 WSL 安装的其他 X 应用程序,例如 xclocksqlitebrowser。它们都与 Win11 内置的 X 服务器一起工作。 DISPLAY 环境。变量设置为:

$ echo $DISPLAY
:0

关于如何让 matplotlib windows 在 Win11 下工作有什么想法吗?

记录一下,如果有人在 Win11 下的 WSL 中遇到同样的问题:

matplotlib.show() 函数在直接从控制台调用时工作正常。事实证明,即使 :0 作为值有效,当我从 VS Code 运行 我的程序时, DISPLAY 变量也没有设置。设置该环境后。 IDE 的 运行 配置中的变量一切正常。