【发布时间】:2018-08-02 03:16:57
【问题描述】:
我编写了一个带有 Tkinter GUI 的 Python 应用程序,后来添加了一些 CLI 功能,以便在没有 GUI 的情况下在无头服务器 (Ubuntu Server 16.04) 上使用它。
为了限制我必须更改的代码,一些 Tkinter 设置仍然完成,即使在 CLI 模式下也是如此
root = tk.Tk()
canvas = tk.Canvas(root, borderwidth=0)
frame = tk.Frame(canvas)
...
现在,如果我按照此处34584827 的建议使用 -X SSH 到服务器上,它可以正常工作。但我希望它运行的方式是 NodeJs 聊天机器人(在同一台服务器上无人值守地运行)启动应用程序并使用结果。
这给了我错误:
Traceback (most recent call last):
File "sim.py", line 60, in <module>
root = tk.Tk()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1818, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
如果我能做些什么来挽救这种情况?我可以在聊天机器人中使用的参数,Tkinter 的配置...?
注意:这个应用程序也使用 Matplotlib 生成图表,但37604289 中提出的解决方案会处理这部分。
【问题讨论】:
标签: python tkinter ubuntu-server