Mac系统下使用Python keyboard模块调用press('a')报错求助
Mac下使用keyboard模块模拟按键"A"报错的解决方法
在Mac系统中运行以下代码尝试模拟按下字母A时出现报错:
import keyboard keyboard.press("a")
报错信息如下:
File "/Users/lr/PycharmProjects/PythonProject/more.py", line 2, in <module> keyboard.press('a') File "/Users/lr/PycharmProjects/PythonProject/.venv/lib/python3.9/site-packages/keyboard/__init__.py", line 396, in press send(hotkey, True, False) File "/Users/lr/PycharmProjects/PythonProject/.venv/lib/python3.9/site-packages/keyboard/__init__.py", line 379, in send parsed = parse_hotkey(hotkey) File "/Users/lr/PycharmProjects/PythonProject/.venv/lib/python3.9/site-packages/keyboard/__init__.py", line 344, in parse_hotkey scan_codes = key_to_scan_codes(hotkey) File "/Users/lr/PycharmProjects/PythonProject/.venv/lib/python3.9/site-packages/keyboard/__init__.py", line 324, in key_to_scan_codes raise ValueError('Key {} is not mapped to any known key.'.format(repr(key)), e) ValueError: ("Key 'a' is not mapped to any known key.", ValueError('Unrecognized character: a'))
解决方法
授予辅助功能权限
Mac系统对键盘控制类操作有严格的权限限制,需要给运行代码的程序(如PyCharm、终端)开启「辅助功能」权限:- 打开「系统设置」→「隐私与安全性」→「辅助功能」
- 在列表中找到对应的程序,勾选允许其控制电脑
- 重启程序后重新运行代码
改用兼容的方法或模块
部分版本的keyboard模块在Mac上对普通字符的press方法支持不佳,可以尝试:- 使用
keyboard.write()直接输入字符:import keyboard keyboard.write("a") - 替换为更适配Mac的
pyautogui模块(先执行pip install pyautogui安装):import pyautogui pyautogui.press('a')
- 使用
调整模块版本
若坚持使用keyboard.press,可以尝试升级或降级模块版本:# 升级到最新版本 pip install --upgrade keyboard # 或指定版本安装,例如0.13.5 pip install keyboard==0.13.5
内容的提问来源于stack exchange,提问作者turner
相关产品推荐
相关产品推荐

