运行Python keyboard库代码报错OSError: Error 13需管理员权限如何解决?
问题解决方法
报错原因
你遇到的OSError: Error 13 - Must be run as administrator是macOS系统的安全机制限制导致的:keyboard库需要监听全局键盘输入事件,这类涉及系统输入设备的操作必须获得管理员(root)权限才能执行,你写的代码本身逻辑没有问题。
解决方案
临时方案(适合学习测试使用)
运行脚本时在终端命令前添加sudo前缀即可,示例命令:
sudo python3 你的脚本文件名.py
执行后输入你的Mac当前用户的登录密码即可正常运行(输入密码时终端不会显示输入的字符,属于正常情况,输入完成直接按回车即可)。
免密码运行方案(不推荐长期使用,存在安全风险)
如果不想每次运行都输入密码,可以修改系统sudo权限配置:
- 终端运行
sudo visudo打开sudoers配置文件 - 在文件末尾添加如下内容(你当前使用的Python 3.9路径可以直接用下方给出的路径,要是后续换了Python版本再对应修改路径即可):
你的Mac用户名 ALL=(ALL) NOPASSWD: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9
- 按
ctrl+O保存,按回车确认文件名,再按ctrl+X退出编辑器 - 之后再用
sudo运行该版本Python的脚本就不需要输入密码了
注意:该配置会让你当前用户使用这个版本的Python执行所有sudo操作都无需密码,存在安全隐患,仅建议测试学习阶段使用,用完之后建议把添加的配置删掉恢复原样。
补充说明
- 如果后续在Windows系统使用该库,只需要右键点击终端/命令提示符,选择「以管理员身份运行」后再执行脚本即可。
- Linux系统下的操作和macOS一致,运行脚本时添加
sudo前缀即可。
内容的提问来源于stack exchange,提问作者python_man
相关产品推荐
相关产品推荐

