问题描述
我正在尝试使用 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 并看到相同的根进程正在事件文件上运行)
解决方法
好的,解决方案是多个事件文件与连接的设备相关。现在有了另一个,一切正常。