当我尝试通过 show()
从 Python 3 显示 matplotlib
窗口时,出现以下错误:
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
因此,按照此处的各种线索,我尝试了以下操作:
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 都认为它处于 headless 模式。不过,我可以在 Win11 下通过 WSL 安装运行其他 X 应用程序,例如 xclock
或 sqlitebrowser
。它们都与Win11内置的X服务器一起工作。 DISPLAY
环境。变量设置为:
$ echo $DISPLAY
:0
有什么想法可以让 matplotlib
窗口在 Win11 下工作吗?
最佳答案
郑重声明,如果有人在 Win11 下的 WSL 中遇到同样的问题:
直接从控制台调用时,matplotlib
的 .show()
函数工作正常。事实证明,尽管 :0
作为值是有效的,但当我从 VS Code 运行程序时,未设置 DISPLAY
变量。设置该环境后。 IDE 运行配置中的变量一切正常。
关于python - 如何在Win11下显示WSL2中的matplotlib窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70708553/