我只是从tkinter开始,甚至没有运行或准备复杂的GUI应用程序,我已经在其他服务器上使用了此简单命令,并且运行良好,因此问题可能出在我的安装中。
我的Linux版本是18.04我的python版本是3.6.5 。我尝试从ssh连接,尝试从Windows putty(远程服务器)连接。
这是我尝试执行的代码:
from tkinter import *
potato = Tk()
potato.mainloop()
这是我得到的错误:
---------------------------------------------------------------------------
TclError Traceback (most recent call last)
<ipython-input-1-1a8e1fdc2509> in <module>()
1 from tkinter import *
----> 2 potato = Tk()
3 potato.mainloop()
/usr/lib/python3.6/tkinter/__init__.py in __init__(self, screenName, baseName, className, useTk, sync, use)
2018 baseName = baseName + ext
2019 interactive = 0
-> 2020 self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
2021 if useTk:
2022 self._loadtk()
TclError: no display name and no $DISPLAY environment variable
我有点菜鸟,所以请告诉我您可能需要的任何缺失信息。
答案 0 :(得分:1)
您的代码正常工作,不用担心。
在这种情况下,由于服务器无法找到显示程序的显示位置,因此您得到的错误(no display name and no $DISPLAY environment variable
)与SSH连接有关。
如果要使用PuTTY并在Windows机器(运行X服务器)中查看tkinter应用,则需要事先在PuTTY配置中指定它。为此,您只需要启用X11转发(在“连接”>“ SSH”>“ X11”>“启用X11转发”中即可)。