Python evdev 循环对按键没有反应

问题描述

我正在尝试使用 python evdev 模块(python3 解释器/Linuxmint 20.1)。 我尝试运行文档的示例代码https://python-evdev.readthedocs.io/en/latest/tutorial.html#reading-events):

>>> from evdev import InputDevice,categorize,ecodes
>>> dev = InputDevice('/dev/input/event1')

>>> print(dev)
device /dev/input/event1,name "Dell Dell USB Keyboard",phys "usb-0000:00:12.1-2/input0"

>>> for event in dev.read_loop():
...     if event.type == ecodes.EV_KEY:
...         print(categorize(event))
... # pressing 'a' and holding 'space'
key event at 1337016188.396030,30 (KEY_A),down
key event at 1337016188.492033,up
key event at 1337016189.772129,57 (KEY_SPACE),down
key event at 1337016190.275396,hold
key event at 1337016190.284160,up

但是在我的终端中没有打印出关键事件。也没有错误。它只是挂在循环中,当我按下它时,键的字母会打印到控制台。我之前在 VT 中检查过 evtest 以确保代码引用了正确的事件文件 - 应该没问题。打印的设备也正确。

有谁知道如何解决这个问题或问题可能出在哪里? (这可能是由于对内核进程的干扰吗?我检查了 fuser 并看到相同的根进程正在事件文件上运行)

解决方法

好的,解决方案是多个事件文件与连接的设备相关。现在有了另一个,一切正常。