
本文介绍解决 `pyautogui.displaymouseposition()` 报错问题的正确方法,并推荐更稳定、功能更全的替代方案 `pyautogui.mouseinfo()`,帮助开发者快速获取鼠标实时坐标、rgb颜色及窗口信息。
pyautogui.displayMousePosition() 是一个已弃用且存在兼容性问题的函数。从 PyAutoGUI v0.9.53+ 开始,该函数内部依赖 pyscreeze 模块进行截图取色,但在部分安装环境下(尤其是通过 pip 单独升级 PyAutoGUI 而未同步更新 pyscreeze 时),会出现 NameError: name 'pyscreeze' is not defined 错误——这是因为模块导入逻辑失效,而非 pyscreeze 未安装。
✅ 正确做法:使用官方推荐的现代替代工具 —— pyautogui.mouseInfo():
import pyautogui pyautogui.mouseInfo()
运行后将自动打开一个独立的图形化调试窗口(MouseInfo GUI),实时显示:
- 当前鼠标指针的屏幕坐标(x, y)
- 所在像素的 RGB 颜色值(如 (255, 240, 220))
- 鼠标下方窗口的标题与句柄(Windows)或可访问名称(macOS/Linux)
- 支持暂停/继续、截图保存、坐标复制等功能
⚠️ 注意事项:
- 首次运行需确保已安装 pyscreeze(PyAutoGUI 的依赖项):
pip install --upgrade pyscreeze
- 若提示 tkinter 缺失(GUI 窗口无法启动),请安装完整 Python 发行版或手动启用 tkinter(如 Ubuntu 上执行 sudo apt-get install python3-tk)。
- mouseInfo() 不会阻塞主线程,但需保持 Python 进程运行;关闭窗口即退出监控。
- 该工具专为开发调试设计,不可用于生产环境自动化(无 API 返回值,仅交互式界面)。
? 小技巧:若只需一次性获取当前坐标(无需 GUI),可用以下轻量代码:
import pyautogui
x, y = pyautogui.position()
print(f"当前鼠标位置:({x}, {y})")总结:放弃已失效的 displayMousePosition(),拥抱 mouseInfo() —— 它更稳定、信息更丰富、维护更活跃,是定位点击目标、验证坐标逻辑的首选调试利器。










