在python中运行tkinter时出错“运行代码时没有显示名称和没有$DISPLAY环境变量”

在python中运行tkinter时出错“运行代码时没有显示名称和没有$DISPLAY环境变量”

错误信息是:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/tkinter/__init__.py", line 2261, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

答案1

WSL2 的最新版本内置了对 Linux 上 GUI 应用程序的支持。

来自官方文档

现有的 WSL 安装

如果您的计算机上已安装 WSL,则可以通过从提升的命令提示符运行更新命令来更新到包含 Linux GUI 支持的最新版本。

选择“开始”,键入 PowerShell,右键单击“Windows PowerShell”,然后选择“以管理员身份运行”。

输入WSL更新命令:

wsl --update

您需要重新启动 WSL 才能使更新生效。您可以通过在 PowerShell 中运行关机命令来重新启动 WSL。

wsl --shutdown

答案2

对我有用的解决方案是export DISPLAY=:0,或者export DISPLAY=:0.0也可能有效。如果其中任何一个有效,请将它们添加到 ~/.profile 以使其持久。

相关内容