keyboard.add_hotkey не работает
не могу создать хоткей: код, который должен выполняться после нажатия клавиши выполняется, а при попытке нажать клавишу выдаёт ошибку
import keyboard
from threading import Thread
def run():
keyboard.add_hotkey('a', print('FFFF'))
keyboard.wait("d")
Thread(target=run).start()
консоль выдаёт:
FFFF
aException in thread Thread-3:
Traceback (most recent call last):
File "E:\pyton\pyton\lib\threading.py", line 926, in _bootstrap_inner
self.run()
File "E:\pyton\pyton\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\User\PycharmProjects\pythonProject2\venv\lib\site-packages\keyboard\_generic.py", line 58, in process
if self.pre_process_event(event):
File "C:\Users\User\PycharmProjects\pythonProject2\venv\lib\site-packages\keyboard\__init__.py", line 218, in pre_process_event
callback(event)
File "C:\Users\User\PycharmProjects\pythonProject2\venv\lib\site-packages\keyboard\__init__.py", line 649, in <lambda>
handler = lambda e: (event_type == KEY_DOWN and e.event_type == KEY_UP and e.scan_code in _logically_pressed_keys) or (event_type == e.event_type and callback())
TypeError: 'NoneType' object is not callable
при том keyboard.wait работает адекватно
Ответы (1 шт):
Автор решения: Prog
→ Ссылка
Просто print нельзя вызвать, поэтому добавляйте к нему функцию lambda.
Весь код:
import keyboard
from threading import Thread
def run():
keyboard.add_hotkey('a', lambda: print('FFFF'))
keyboard.wait("d")
Thread(target=run).start()