2

链接的问题:Mac OS X: _tkinter.TclError: no display name and no $DISPLAY environment variable

上面有同样的问题,但答案不适用于我。

一个.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 连接到服务器并运行它时,它给了我“没有显示名称和没有显示环境变量”

1)是否可以通过腻子运行它?

2) python 是否可以知道是否通过 putty 建立了连接,并且可能会引发我自己的错误而不是 TclError?

4

1 回答 1

3

您需要在 Windows 机器上运行 X 服务器,然后在登录之前在您的 putty 会话中启用 X11 转发(请参阅 PuTTY 中的 Connection / SSH / X11 属性页)。过去我使用过免费的Xming和不免费的 eXceed。一旦您在实际正在查看的机器上拥有 X 服务器并通过 ssh 链接转发 X 连接,它将在远程机器上设置 DISPLAY 环境变量,以便 X 客户端可以与显示服务器通信。否则,如果没有 DISPLAY 设置,Tk 将引发错误 - 如您所见。

于 2013-10-16T19:06:41.657 回答