pynput keyboard listener does not detect keys on Mac OS X

别等时光非礼了梦想. 提交于 2020-02-25 04:03:29

问题


I am using pynput to record keystrokes via Listener on OS X Mojave. I am using Pycharm as my IDE for running the code.

I was not able to get it to work using the same example from the pynput site.

from pynput.keyboard import Listener as key_listener

class recorder:

    def on_press(self, key):
        print(key)

    def on_release(self, key):
        print(key)


if __name__ == "__main__":
    testme = recorder()

    with key_listener(on_press=testme.on_press, on_release=testme.on_release) as listener:
        listener.join()

I did step through it and I get no errors (unless I put the with statement in a function, instead of in the main, but that's a known issue with threading in Mojave, from what I can tell after searching for that error), but everything stops at the .join() statement, and I get nothing printed when I press and release a key on my keyboard.


回答1:


This is probably a bit late, but the answer is to go into:

  1. Settings -> Security & Privacy
  2. Click on the Privacy tab
  3. Click the + Hold down CMD + SHIFT + . (so that you can see hidden files/folders)
  4. Navigate to /usr/local/bin or wherever you have Python installed
  5. Click okay.

That should do it.

Note

If you try to run your app via the terminal, you will need to add the terminal.app to the list of allowed apps, as done above for Python.




回答2:


Found the problem.

For some strange reasons; OSX is uber-picky about returning events, so unless you go in the security settings and enable Pycharm to be in the list of apps that are allowed to use accessibility, it won't work.

I didn't try on Windows yet, but I assume it will be the same issue. The only gripe I have is that I have no idea how to add Python itself to the list of supported accessibility apps; since the control panel does not allow me to go in /usr/local/bin, which is where I have Python3 installed (via Brew).




回答3:


Some people have stated that adding IDLE to supported accessibility apps is what allows python itself to run the listener.

while your in a finder window, if you press cmd+shft+'.' (period key) it will show hidden files, which will allow you to navigate to usr/local/bin and look for your python implementation.

On windows this is slightly different, I always run python/pycharm as admin and it never gives me any issues.



来源:https://stackoverflow.com/questions/53088995/pynput-keyboard-listener-does-not-detect-keys-on-mac-os-x

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!