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

Mac系统下Python截图仅返回桌面壁纸无上层应用内容如何解决

问题原因

该问题是MacOS系统的隐私权限限制导致的。从MacOS Catalina(10.15)版本开始,系统对屏幕捕获能力增加了权限管控:所有需要读取屏幕内容的进程,必须先获得用户授予的「屏幕录制」权限,未授权的进程调用系统截图接口时,系统会自动屏蔽上层应用窗口内容,仅返回桌面壁纸作为脱敏结果。
你尝试的autopy、PIL ImageGrab、Quartz框架方案本质都是调用系统级的屏幕捕获接口,受权限限制所以只能获取到桌面内容。

解决方案

步骤1:配置屏幕录制权限

打开「系统设置」→「隐私与安全性」→「屏幕录制」,在列表中找到你运行Python脚本的终端(比如Terminal、iTerm2)或者IDE(比如VS Code、PyCharm),打开对应开关后,重启终端/IDE即可生效。

步骤2:实现和cmd + shift + 3效果一致的截图

权限配置完成后,原有方案都可以正常运行,更推荐直接调用系统原生的screencapture工具实现截图,该工具就是系统自带截图快捷键的底层实现,不需要额外安装第三方依赖,调用示例:

import subprocess

# 全屏截图,保存到指定路径,效果完全等同于cmd + shift + 3
subprocess.run(["screencapture", "./full_screenshot.png"])

# 可选:截取指定区域,参数格式为 左上角x,左上角y,宽度,高度
subprocess.run(["screencapture", "-R", "100,100,800,600", "./partial_screenshot.png"])

# 可选:截图直接保存到剪贴板,效果等同于cmd + ctrl + shift + 3
subprocess.run(["screencapture", "-c"])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 01:39:01