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

PyAutoGUI的region参数失效,始终截取整个屏幕求助

解决MacOS下pyautogui region参数无效的问题

针对你的情况,MacOS上pyautogui的region参数失效通常和权限或版本有关,试试下面的方案:

1. 检查并授予屏幕录制权限

MacOS对屏幕截图有严格的权限控制,你需要给运行代码的应用(比如终端、VSCode等)开启屏幕录制权限:

  • 打开「系统设置」→「隐私与安全性」→「屏幕录制」
  • 在列表中找到你用来运行Python代码的应用,勾选它
  • 重启该应用后再运行代码

2. 更新pyautogui到最新版本

旧版本的pyautogui在MacOS上可能存在区域截图的bug,执行以下命令更新:

pip install --upgrade pyautogui

3. 验证坐标范围是否正确

有时候region参数的坐标超出了屏幕范围,会导致截取整个屏幕。你可以先运行以下代码查看当前屏幕的分辨率和鼠标实时坐标,确保(20,20,500,500)是有效的区域:

import pyautogui
print(pyautogui.size())  # 输出屏幕分辨率
pyautogui.displayMousePosition()  # 实时显示鼠标坐标,按Ctrl+C退出

4. 替代方案:使用mss库

如果以上方法都无效,可以试试更轻量的mss库,它在MacOS上的区域截图支持更稳定:

  • 先安装mss:
pip install mss
  • 区域截图代码:
from mss import mss

with mss() as sct:
    # region格式:left, top, width, height
    region = {'left': 20, 'top': 20, 'width': 500, 'height': 500}
    img = sct.grab(region)
    # 保存图片
    mss.tools.to_png(img.rgb, img.size, output='screen.png')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:54:54