我正在使用
pynput.keyboard.Listener
来监听键盘输入。尽管线程正在运行,但在启动侦听器线程后,传递给其 on_press
或 on_release
参数的函数永远不会被调用(使用其 ìs_alive()
方法检查)。
pynput 文档也给出了一个最小的示例(用于非阻塞操作):
import pynput.keyboard as kb
def say(key):
print(key)
lis=kb.Listener(on_press=say, on_release=say)
lis.start()
while True:
pass
函数
say
永远不会被调用,无论是按下还是释放任何键。
启动后lis.is_alive()
返回True
。
没有显示错误或引发异常。
使用 lis.join()
运行监听器阻塞也没有帮助。
通过在 Ubuntu 22.04 机器上从 Wayland 切换到 X11 解决了该问题。
使用 Wayland 时,
Listener
显然没有记录过按键操作。