链接问题:Mac OS X: _tkinter.TclError: no display name and no $DISPLAY environment variable
上面有同样的问题,但答案不适用于我。
a.py
from Tkinter import *
root = Tk()
canvas = Canvas(bg='white', width = 200, height = 200)
canvas.pack()
canvas.create_line(0, 0, 199, 199, fill="blue", width = 5)
canvas.create_line(0, 199, 199, 0, fill="blue", width = 5)
canvas.update()
canvas.postscript(file = "x.ps")
root.mainloop()
a.py 在远程服务器上
当我通过 VNC 连接到服务器并运行它时,效果很好。
但是当我在 Windows 上通过 Putty 连接到服务器并运行它时,它给我“没有显示名称,也没有 diplay 环境变量”
1) 是否可以通过 Putty 运行它?
2) python 可以知道连接是否是通过 putty 建立的,并且可能会引发我自己的错误而不是 TclError 吗?
最佳答案
您需要在 Windows 计算机上运行 X 服务器,然后在登录之前在 Putty session 中启用 X11 转发(请参阅 PuTTY 中的连接/SSH/X11 属性页)。过去我用过 Xming哪个是免费的,而 eXceed 不是。一旦您实际正在查看的计算机上有一个 X 服务器并通过 ssh 链接转发 X 连接,它将在远程计算机上设置 DISPLAY 环境变量,以便 X 客户端可以与显示服务器进行通信。否则,如果没有 DISPLAY 设置,Tk 将引发错误 - 正如您所看到的。
关于python - Putty:_tkinter.TclError:无显示名称且无显示环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19409201/