python pygame程序在切换到linux时无法正常工作

python pygame程序在切换到linux时无法正常工作,python,linux,pygame,Python,Linux,Pygame,我有一个程序,在pygame环境中从用户那里接收密钥,然后它在控制台上打印一些信息,并执行一些其他工作 它在windows上对我很管用 当使用相同的代码切换到linux时,它不能正常工作,并且似乎对键盘上的任何输入键都没有响应 我试着用1/0来测试问题到底出在哪里,就像Hyperboreus先生建议的那样(下面代码中的注释) 我在“if event.key”中找到了确切的问题 我使用的功能是: for event in pygame.event.get(KEYDOWN): # 1/0 -

我有一个程序,在pygame环境中从用户那里接收密钥,然后它在控制台上打印一些信息,并执行一些其他工作 它在windows上对我很管用 当使用相同的代码切换到linux时,它不能正常工作,并且似乎对键盘上的任何输入键都没有响应 我试着用1/0来测试问题到底出在哪里,就像Hyperboreus先生建议的那样(下面代码中的注释) 我在“if event.key”中找到了确切的问题

我使用的功能是:

for event in pygame.event.get(KEYDOWN):
    # 1/0 --> it give me an error when pressing any button
    if event.key == K_i:
        numbers.insert(0,number)
        #1/0 --> is not giving me any error when pressing i
        print "ingoing"

        return 1         #"ingoing"




    elif event.key==K_m:
        numbers.insert(0,number)
        print "missed"

        return 2             #"missed"

    elif event.key==K_o:
        numbers.insert(0,number)
        print "outgoing"

        return 3             #"outgoing"

    elif event.key==K_l:
        disp_log() #this function displays test on the pygame screen 
else : 
    None 
我通过这个命令从终端播放脚本 python xxxxx.py

我正在安装python2.7、python3和python3.2以及pygame
我试着移除它们,然后再次安装它们,但正如@Hyperboreus建议的那样,同样的问题仍然存在,我在for中的第一行放了一个print event.key。我使用if条件的打印值,而不是“K_I”或“K_m”等

对我来说效果很好。


我的最新版本中的pygame可能删除了使用K_键的选项,并将其替换为其他内容。但是向上的方法对我来说效果很好,多亏了@Hyperboreus

请在
打印“ingoing”
之前在一行上放置一个
1/0
,以确保满足此条件。如果您的脚本在按
i
时抛出错误,则输出有问题。如果它没有抛出错误,则永远无法到达
打印
行。请发布结果。@Hyperboreus:它没有给出错误,聪明的建议聪明的建议:(a)你的事件循环没有运行,(b)你永远不会得到关键事件,(c)太阳耀斑。真的,我只是在泥泞的池塘里用棍子戳。检查你的整个脚本,看看你的代码实际执行了多远,如果主事件循环运行,等等@Hyperboreus:没有其他的一切都是好的,正如我告诉你的,我在windows上测试了它,当我在“for event”之后立即放入1/0时,它就工作了语句当我按下任何按钮时,它给了我一个错误,但当我将它放入任何if条件时,它没有给我一个错误,这意味着问题在“event.key”中!将
打印事件作为第一行输入
。并根据您的条件使用打印的值。