Ubuntu22.04+Python3.10环境下pyautogui.position()坐标异常求解
Ubuntu22.04下pyautogui.position()坐标异常的解决建议
检查并更新依赖库
Ubuntu22.04的系统库版本和20.04有差异,pyautogui依赖的xlib组件可能适配不良,执行以下命令重装依赖:pip uninstall pyautogui python3-xlib -y sudo apt install python3-xlib -y pip install pyautogui --upgrade也可以直接安装pyautogui的预发布版本,大概率修复了适配问题:
pip install pyautogui --pre切换回Xorg显示服务器
Ubuntu22.04默认用Wayland,而pyautogui对Wayland的支持不完善。登录界面点击用户名旁的齿轮图标,选择「Ubuntu on Xorg」登录即可,远程桌面连接时也要确保用Xorg协议。手动指定显示设备
多屏幕或特殊显示配置下,强制pyautogui使用正确的显示输出,在代码开头添加:import os os.environ['DISPLAY'] = ':0' # 通常是:0,根据实际显示编号调整 import pyautogui用xdotool替代验证/获取坐标
如果以上方法都无效,先通过系统工具验证坐标是否正常:sudo apt install xdotool -y xdotool getmouselocation要是xdotool返回正确坐标,可以用Python调用它替代pyautogui的位置获取功能:
import subprocess def get_mouse_pos(): output = subprocess.check_output(['xdotool', 'getmouselocation']).decode().strip() x = int(output.split('x=')[1].split(' ')[0]) y = int(output.split('y=')[1].split(' ')[0]) return (x, y)
内容的提问来源于stack exchange,提问作者W. Wang
相关产品推荐
相关产品推荐

