You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派3A+使用Python keyboard库报错求助:需Root权限

解决树莓派Linux下keyboard库需要root权限的问题

核心原因

报错信息明确提示:ImportError: You must be root to use this library on linux.,这是因为Linux系统中读取键盘这类输入设备需要root级别的权限,keyboard库底层依赖访问系统输入设备文件,普通用户权限不足。

解决方案

方案1:直接用sudo运行脚本

这是最直接的解决方法,运行Python脚本时加上sudo提升权限:

sudo python3 /home/yesnt/Documents/programming/NICK.py

如果使用虚拟环境,要确保sudo调用的是对应环境的Python解释器路径

方案2:给Python添加输入设备访问权限(无需每次sudo)

如果不想每次运行都加sudo,可以给Python二进制文件添加特定权限,让普通用户也能访问输入设备:

sudo setcap cap_dac_override,cap_sys_rawio+ep /usr/bin/python3.9

替换/usr/bin/python3.9为你实际使用的Python路径,可通过which python3命令查看

执行完该命令后,普通用户身份运行脚本就不会再触发权限报错。

方案3:针对LED控制场景的替代方案

如果你的需求是用按键控制LED,也可以考虑更轻量的替代方案:

  • 若使用外接物理按键:直接用树莓派自带的gpiozero或RPi.GPIO库读取GPIO引脚状态,无需依赖keyboard库,且默认已配置好权限,不需要root。
  • 若坚持用键盘按键:可尝试evdev库,它同样能读取键盘输入,权限配置方式类似,或用sudo运行即可。

验证方法

执行修改后的命令或配置后,运行你的测试代码:

import keyboard
while True:
    if keyboard.is_pressed("a"):
        print("You pressed 'a'.")
        break

若能正常检测按键并打印信息,说明问题已解决。

内容的提问来源于stack exchange,提问作者yesn't

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:01:40