【问题标题】:Putty: _tkinter.TclError: no display name and no display environment variable腻子:_tkinter.TclError:没有显示名称和显示环境变量
【发布时间】:2013-10-24 21:48:53
【问题描述】:

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

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

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

【问题讨论】:

  • if 'DISPLAY' not in os.environ: YOUR_ERROR_HANDLING_HERE

标签: python putty


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-10-02
    • 2020-10-24
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 2015-05-08
    • 2018-09-03
    • 2019-11-03
    • 1970-01-01
    相关资源
    最近更新 更多