如何修复_tkinter.TclError:Raspberry Pi python代码上没有显示名称和没有$ DISPLAY环境变量错误?

时间:2015-02-21 21:41:26

标签: python linux tkinter raspberry-pi

我在Raspberry Pi上运行代码。它是一个代码,在函数内运行一小段使用tkinter来检测按键的代码。如果您输入Konami代码,那么它输出"您是专家。"。这段代码工作正常(如下所示),但如果在像Raspberry Pi这样的函数内部它可以工作吗?

Pi上的循环接受输入的输入。每个关键字都会输入一个功例如,' break'完全退出主循环。输入' ping'会带你到ping系统。为此,我写(从python翻译成英文):如果你输入'代码',你将进入tkinter按键系统。这是系统。作为tk的导入tkinter不是在内部tkinter函数中写入的。它写在整个程序的开头。

import tkinter as tk
list = ['0']
def key(event):
if event.keysym == 'Return':
    root.destroy()
if event.char == 'Backspace':
    list= ['0']
if even.char == event.keysym:
    if event.char == "b":
        list.append('b')
    if event.char == "a":
        list.append('a')
elif len(event.char)==1:
    print('')
else:
    # f1 to f12, shift keys, caps lock, Home, End, Delete ...
    if (event.keysym == 'Up'):
        list.append('Up')
    if (event.keysym == 'Down'):
        list.append('Down')
    if (event.keysym == 'Left'):
        list.append('Left')
    if (event.keysym == 'Right'):
        list.append('Right')
root = tk.Tk()
print( "Press a key (Escape key to exit):" )
root.bind_all('<Key>', key)
# don't show the tk window
root.withdraw()
root.mainloop()
if (list == ['0', 'Up', 'Up', 'Down', 'Down', 'Left', 'Right', 'Left', 'Right', 'b', 'a']):
print ("You are pro.")

该程序运行正常,直到我输入&#39;代码&#39;作为启动该功能的命令。错误:

Traceback (most recent call last):
    File "/mnt/clock.py", line 391, in <module>
        root = tk.Tk()
    File "/use/lib/python3.3/tkinter/__init__.py", line 1701, in __init__
        self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, use Tk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable.

我浏览了raspberry pi文件,看看__init__.py代码是否与windows上的代码不同。当然,它是一样的。

我将不胜感激。

0 个答案:

没有答案