【问题标题】:pynput keyboard listener does not detect keys on Mac OS Xpynput 键盘侦听器未检测到 Mac OS X 上的键
【发布时间】:2019-04-04 22:51:22
【问题描述】:

我正在使用 pynput 通过 OS X Mojave 上的侦听器记录击键。我使用 Pycharm 作为运行代码的 IDE。

我无法使用来自 pynput 站点的相同示例使其工作。

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()

我确实逐步完成了它并且没有收到任何错误(除非我将 with 语句放在一个函数中,而不是在 main 中,但这是 Mojave 中线程的一个已知问题,从搜索后我可以看出那个错误),但一切都在.join() 语句处停止,当我按下并释放键盘上的一个键时,我什么也没有打印出来。

【问题讨论】:

    标签: python-3.x macos pynput


    【解决方案1】:

    发现问题。

    出于一些奇怪的原因; OSX 对返回事件非常挑剔,因此除非您进入安全设置并启用 Pycharm 进入允许使用辅助功能的应用程序列表,否则它将无法正常工作。

    我还没有在 Windows 上尝试过,但我认为这将是同样的问题。我唯一的抱怨是我不知道如何将 Python 本身添加到支持的辅助应用程序列表中;因为控制面板不允许我进入/usr/local/bin,这是我安装 Python3 的地方(通过 Brew)。

    【讨论】:

      【解决方案2】:

      有人说,将 IDLE 添加到支持的辅助功能应用程序是允许 python 本身运行侦听器的原因。

      当您在查找器窗口中时,如果您按 cmd+shft+'.' (句点键)它将显示隐藏文件,这将允许您导航到 usr/local/bin 并查找您的 python 实现。

      在 Windows 上这略有不同,我总是以管理员身份运行 python/pycharm,它从来没有给我任何问题。

      【讨论】:

        【解决方案3】:

        这可能有点晚了,但答案是进入:

        1. 设置->Security & Privacy
        2. 点击Privacy标签
        3. 点击+按住CMD+SHIFT+.(这样就可以看到隐藏 文件/文件夹)
        4. 导航到/usr/local/bin 或安装了 Python 的任何位置
        5. 点击okay

        应该可以的。

        注意

        如果您尝试通过终端运行您的应用程序,您需要将 terminal.app 添加到允许的应用程序列表中,就像上面针对 Python 所做的那样。

        【讨论】:

        • 对我来说,只需将终端和 IDE(Visual Studio 代码)添加到列表中就足够了。我无法添加 Python 或安装它的文件夹(如步骤 4 中所述),显然不需要。
        • 在 Mojave 10.14.6 上,我也无法在第 4 步中选择我的 Python 安装。以 root 身份运行应用程序也不适用于本机终端应用程序(仅在第 3 方终端模拟器中)。
        【解决方案4】:

        尝试超级用户 ($sudo su) 并在终端中运行您的 python 代码,我想 它应该工作

        我正在使用 OSX 10.12 并且 pynput 仅在按下时获取 cmd ctrl fn 和选项键,但现在在超级用户中它获取键。

        【讨论】:

          【解决方案5】:

          这可能也有点晚了,但简单的答案是进入:

          • 偏好
          • 安全和隐私
          • 输入监控 -> 确认 PyCharm

          【讨论】:

          • 兄弟,你是天才; Macos 只是迟钝。
          猜你喜欢
          • 2020-05-05
          • 2021-02-11
          • 2020-02-17
          • 2021-11-15
          • 1970-01-01
          • 2020-05-24
          • 2022-01-02
          • 2020-12-15
          • 2018-12-21
          相关资源
          最近更新 更多