导入键盘段错误 python Macos Big Sur

问题描述 投票:0回答:2

我遇到了一个以前在 python 中从未遇到过的奇怪问题。当我尝试导入键盘模块:

import keyboard
时,我的程序发送分段错误。我已经使用 sudo 和不使用 sudo 运行了该程序。我已经重新安装了该软件包,但它仍然无法工作。有什么帮助吗?

另外,非常重要的是,我使用的是 MacOS Big Sur。我相信缺乏权限是这个问题的根源,但我不确定如何添加它们。

代码:

import keyboard
keyboard.press_and_release('space')

错误:

usr@MacBook-Air Program % python3 keystrokes.py 
zsh: segmentation fault  python3 keystrokes.py
python python-3.x bash macos segmentation-fault
2个回答
1
投票

使用 MacOS,您必须明确允许终端程序“控制”您的计算机。在这种情况下,您的终端正在控制键盘。

前往: 系统偏好设置 -> 安全和隐私 -> 隐私选项卡。 然后:选择辅助功能并将您的终端程序添加到列表中。 就我而言,它是 iTerm,你的可能不同。

注意:我使用的是 MacOS 12.5 (Monterey),但这里是 Apple 支持的链接,更详细地描述了该过程(专门针对 Big Sur)

https://support.apple.com/guide/mac-help/allow-accessibility-apps-to-access-your-mac-mh43185/11.0/mac/11.0


0
投票

可能是 Samuel 提到的 Mac 兼容性问题,我使用的是 M1 Mac,无法在不出现段错误的情况下导入它。我只是转而使用 input() 来等待用户按 Enter 键,而不是使用整个键盘库。如果您需要更复杂的功能,pygame 还有一些很棒的 key_down 和按键检测功能。

© www.soinside.com 2019 - 2024. All rights reserved.