我正在尝试使用python evdev模块(Python3 Interpreter/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, 30 (KEY_A), up
key event at 1337016189.772129, 57 (KEY_SPACE), down
key event at 1337016190.275396, 57 (KEY_SPACE), hold
key event at 1337016190.284160, 57 (KEY_SPACE), up
但是在我的终端中没有打印出键事件。也没有错误。它只是挂在循环中,当我按下它时,键的字母被打印到控制台。我之前在VT中检查了evtest,以确保代码引用了正确的事件文件-应该没问题。打印出来的设备也是正确的。
有没有人知道如何解决这个问题或问题可能在哪里?(这可能是由于内核进程的干扰吗?我检查了fuser,看到相同的根进程在eventfile上运行)
好的,解决方案是多个事件文件与连接的设备相关。现在我又买了一个,一切都很好。