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

如何在Ubuntu系统中运行需要root权限的Python文件?

Ubuntu 20.04 下 Python keyboard 模块权限报错解决方案

keyboard 模块需要读写系统输入设备实现功能,默认普通用户无对应访问权限,直接用 root/sudo 报错通常是虚拟环境路径适配问题或 uinput 设备权限不足,可按以下步骤解决:


方案1:配置永久权限(无需每次运行加sudo)

  • 将当前用户加入input组,获取输入设备访问权限:
    sudo usermod -aG input $USER
    
  • 配置uinput设备访问规则,创建udev规则文件:
    echo 'KERNEL=="uinput", MODE="0660", GROUP="input", OPTIONS+="static_node=uinput"' | sudo tee /etc/udev/rules.d/99-uinput.rules
    
  • 重新加载udev规则让配置生效:
    sudo udevadm control --reload-rules && sudo udevadm trigger
    
  • 注销当前用户重新登录,或直接重启系统,配置即可生效。

方案2:临时测试直接用sudo运行的适配方法

如果仅临时测试代码不想改系统权限,需要注意虚拟环境的适配问题:

  • 若你使用了Python虚拟环境,直接执行sudo python xxx.py会调用系统全局Python而非虚拟环境,若keyboard模块仅安装在虚拟环境中就会报权限/模块不存在错误,需要指定虚拟环境的Python路径运行:
    sudo /path/to/你的虚拟环境目录/bin/python 你的脚本文件名.py
    
  • 若没有使用虚拟环境,直接执行以下命令即可运行:
    sudo python3 你的脚本文件名.py
    

额外注意事项

  • 如果你手动切换过Wayland显示服务器,全局输入控制类库会被系统限制,Ubuntu 20.04默认使用Xorg,如有切换可以在登录界面点击右下角齿轮,选择「Ubuntu on Xorg」登录后再运行代码。
  • 配置完成后可执行groups命令,确认输出中包含input组,说明用户组配置已生效。

配置完成后运行以下测试代码即可验证:

import keyboard
keyboard.write("Hello")

内容的提问来源于stack exchange,提问作者JerryWill321

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:27:03