VScode 中 Tkinter 的 $DISPLAY 环境问题

$DISPLAY environment problem with Tkinter in VScode

我正在尝试使用 tkinter 构建一个简单的倒数计时器,但是当我 运行 代码出现以下消息时:

File "/home/user/Desktop/Beginner Projects/Pythons/countdown timer.py", line 20, in <module>
    root = Tk()
  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

我搜索了很多答案,但大部分都不明白。我怎样才能解决这个问题并让 tkinter 在 VScode 上工作?提前致谢!

编辑 1:

from tkinter import *
from tkinter import ttk
from tkinter import font
import time
import datetime

global endTime

def quit(*args):
    root.destroy()

def cant_wait():
    timeLeft = endTime - datetime.datetime.now()
    timeLeft = timeLeft - datetime.timedelta(microseconds=timeLeft.microseconds)

    txt.set(timeLeft)

    root.after(1000, cant_wait)

root = Tk()
root.attributes("-fullscreen",False)
root.configure(background="black")
root.bind("x", quit)
root.after(1000, cant_wait)

endTime = datetime.datetime(2020,6,7,8,0,0)

fnt = font.Font(family="Helvetica", size=90, weight="bold")
txt = StringVar()
lbl = ttk.Label(root, textvariable=txt, font=fnt, foreground="white", background="black")
lbl.place(relx = 0.5, rely = 0.5, anchor="center")

root.mainloop()

我在 Ubuntu 20.04.1 使用 PySimpleGUI 时遇到了同样的问题。

如果通过单击右上角的绿色箭头(对应于“运行 Python 终端中的文件”)尝试 运行 脚本时出现问题,一种解决方案是进入 Terminal 并适当地设置 DISPLAY 变量。
就我而言,以下命令可以解决问题: export DISPLAY=:1 DISPLAY 变量的实际值取决于环境的具体情况(例如参见 [​​https://unix.stackexchange.com/a/612453]

如果问题出现在按 F5(调试)或 Ctrl+F5(运行 未调试)时,则需要编辑 launch.json 文件。 可以通过 运行->Open Configurations 菜单访问该文件。 (假设已经选择了 Debugging/Running 的配置。) 我们需要指示 VSCode 设置 DISPLAY 环境变量。为此,请在适当的部分添加 "env": {"DISPLAY": ":1"}, 行。 就我而言,该部分是以 "name": "Python: Current File",.

开头的部分