boppreh / keyboard

Hook and simulate global keyboard events on Windows and Linux.
MIT License
3.74k stars 432 forks source link

AssertionError when running keyboard.record() on root (WSL) (python 3.11.3) #611

Open fakedgrid0 opened 1 year ago

fakedgrid0 commented 1 year ago

My OS ==> kali linux wsl of the latest version. My python version ==> 3.11.3 I ran the code on a conda environment that has root privileges And 'uinput' is also installed

This is the traceback: /root/miniconda3/envs/root_py3.11/lib/python3.11/site-packages/keyboard/_nixkeyboard.py:110: UserWarning: Failed to create a device file using 'uinput' module. Sending of events may be limited or unavailable depending on plugged-in devices. device = aggregate_devices('kbd') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/root/miniconda3/envs/root_py3.11/lib/python3.11/site-packages/keyboard/__init__.py", line 1041, in record start_recording() File "/root/miniconda3/envs/root_py3.11/lib/python3.11/site-packages/keyboard/__init__.py", line 1016, in start_recording _recording = (recorded_events_queue, hook(recorded_events_queue.put)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/envs/root_py3.11/lib/python3.11/site-packages/keyboard/__init__.py", line 461, in hook append(callback) File "/root/miniconda3/envs/root_py3.11/lib/python3.11/site-packages/keyboard/_generic.py", line 67, in add_handler self.start_if_necessary() File "/root/miniconda3/envs/root_py3.11/lib/python3.11/site-packages/keyboard/_generic.py", line 35, in start_if_necessary self.init() File "/root/miniconda3/envs/root_py3.11/lib/python3.11/site-packages/keyboard/__init__.py", line 196, in init _os_keyboard.init() File "/root/miniconda3/envs/root_py3.11/lib/python3.11/site-packages/keyboard/_nixkeyboard.py", line 113, in init build_device() File "/root/miniconda3/envs/root_py3.11/lib/python3.11/site-packages/keyboard/_nixkeyboard.py", line 110, in build_device device = aggregate_devices('kbd') ^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/envs/root_py3.11/lib/python3.11/site-packages/keyboard/_nixcommon.py", line 168, in aggregate_devices assert fake_device AssertionError

The only code that I ran was: keyboard.record()

Is it because the keyboard module can't work with python 3.11.3?

Odnerka11566 commented 2 months ago

I also have this error, I think you can't use keyboard module with wsl.

Odnerka11566 commented 2 months ago

It's problem with WSL, you should use sshkeyboard module