Python/Pygame脚本在关闭时不响应,而Renoise处于打开状态

Python/Pygame脚本在关闭时不响应,而Renoise处于打开状态,python,pygame,freeze,osc,Python,Pygame,Freeze,Osc,我正在使用Pygame和OSC编写一个Python脚本,它允许我通过在Pygame(1.9.1)环境中执行操作并通过OSC向软件发送消息来控制音乐跟踪器软件Renoise(3.0.0版)。如果你想知道,这个剧本的目的是为了现场表演和创作音乐。然而,我遇到了一个相当恼人的问题:当我试图关闭Pygame窗口时,它只是挂起-甚至不响应Control+C-但只有在Renoise打开或在会话期间至少打开过一次时才会发生这种情况。如果我在不打开Renoise的情况下重新启动并运行脚本,它将按预期工作。这里可

我正在使用Pygame和OSC编写一个Python脚本,它允许我通过在Pygame(1.9.1)环境中执行操作并通过OSC向软件发送消息来控制音乐跟踪器软件Renoise(3.0.0版)。如果你想知道,这个剧本的目的是为了现场表演和创作音乐。然而,我遇到了一个相当恼人的问题:当我试图关闭Pygame窗口时,它只是挂起-甚至不响应Control+C-但只有在Renoise打开或在会话期间至少打开过一次时才会发生这种情况。如果我在不打开Renoise的情况下重新启动并运行脚本,它将按预期工作。这里可能有什么问题

我使用的是Python版本2.7.6、Pygame版本1.9.1和Renoise版本3.0.0。这一切都在Xubuntu 14.04笔记本电脑上运行

我的主脚本代码(导入的OSC模块在许多地方都只是OSC.py):


仔细查看后编辑的版本:退出程序时返回False。但是变量“running”仍然是真的!你的循环仍在继续他的业务,并愉快地循环在那里

我会这样改变:

for event in pygame.event.get():
    if event.type == QUIT:
        self.client.close()
        del(self.client)
        pygame.quit()
        sys.exit()
第二种选择:

return False
更改此部分,使“running”设置为false。不过我还是会选择第一种


如果这不能解决问题,请让我知道,这将是一个需要仔细研究的有趣问题。

我通过确保
pygame.mixer
未初始化来解决我的问题。我想这是因为他们两人同时使用声音硬件导致Renoise出现了一些问题


要仅初始化pygame的某些模块,只需单独调用它们的初始化方法。例如,
pygame.display.init()
将初始化显示模块。调用
pygame.init()
只是初始化当前加载的所有模块的快捷方式。希望这对别人有帮助

哈哈,谢谢你抓到了,但不幸的是,这并没有解决我的问题。程序仍像以前一样运行。啊,对不起,那么我明白了,如果我明天仔细看看这个问题的话。我必须去某个地方弄到Renoise——这是免费软件吗?否则我真的无法尝试:/Patric,但我自己设法解决了我的问题。看看我对这篇文章的回答。知道这个真是太好了!我还经常在“非游戏”应用程序中使用PyGame(它只提供了一些在其他地方找不到的东西)。知道这一点可能会在未来避免一系列问题。谢谢分享!
return False