Putty:_tkinter.TclError:没有显示名称,也没有显示环境变量

时间:2013-10-16 16:51:16

标签: python putty

关联问题: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?

1 个答案:

答案 0 :(得分:2)

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