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

Linux Mint系统下Python的mouse与keyboard模块运行冲突求助

问题原因
  • 权限不足:keyboard、mouse两个Python库在Linux环境下需要读取/dev/input目录下的硬件输入设备节点,默认普通用户没有该目录的读写权限,因此直接运行会提示需要root权限。
  • 模块路径不匹配:普通用户执行pip install安装的第三方包默认存储在当前用户的私有Python包目录(对应用户常用的Python 3.8.10环境),而sudo调用的系统级Python环境默认加载系统公共包目录,该目录下未安装mouse模块,因此触发ModuleNotFoundError。多版本Python共存的情况下,sudo环境的默认Python版本和普通用户的默认版本不一致也会加剧该问题。
可行解决方案

方案1:给sudo对应的Python环境安装依赖(无需修改系统权限)

操作步骤:

  1. 执行以下命令,给sudo调用的/bin/python3(对应你的Python 3.8.10版本)安装所需依赖:
sudo /bin/python3 -m pip install mouse keyboard
  1. 依赖安装完成后,直接用之前的sudo命令运行脚本即可:
sudo /bin/python3 /home/bhrz/Scripts/Python/Mouse/main.py

方案2:给当前用户开放输入设备权限(无需sudo运行,更安全)

操作步骤:

  1. 将当前用户加入input用户组,获取输入设备的读写权限:
sudo usermod -aG input $USER
  1. 执行完成后注销当前用户并重新登录,组权限修改才会生效。
  2. 直接用普通用户身份运行脚本即可,不会触发权限报错,也不存在模块找不到的问题:
/bin/python3 /home/bhrz/Scripts/Python/Mouse/main.py

额外代码修正提示

你当前代码里的热键绑定逻辑存在问题:keyboard.add_hotkey的第二个参数需要传入可调用的函数对象,你当前写的mouse.move(x, y)会在绑定热键时直接执行,而非按下热键时触发,建议修改为:

keyboard.add_hotkey('ctrl+alt+c', lambda: mouse.move(x, y))

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

相关产品推荐
方舟 Agent Plan

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

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