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

PyAutoGUI的locateCenterOnScreen函数无法识别PNG图片报错如何解决?

错误根因及修复方案

1. 路径不匹配问题

你将ADF4350.png存放在系统图片文件夹,但代码中仅传入文件名,locateCenterOnScreen接口默认会从当前Python脚本的执行工作目录查找文件,无法直接读取系统图片目录的资源。

2. 代码变量名错误

你定义的位置变量名为ADF4350_location,后续点击调用时写的是ADF_location,变量名不匹配就算找到图片也会抛出NameError。

3. Windows路径转义问题

你调用os.startfile传入的路径里用了单反斜杠\,Python中单反斜杠是转义符,部分特殊字符组合会被识别为转义序列导致路径解析失败。


具体修复步骤

  • 方法一:直接传入图片完整绝对路径
    先找到你系统图片文件夹的完整路径,比如Windows默认图片文件夹路径为C:\Users\你的用户名\Pictures\ADF4350.png,把完整路径传入接口即可。
  • 方法二:将ADF4350.png移动到和你当前运行的Python脚本同一个文件夹下,不用改路径参数即可正常读取。
  • 所有Windows路径统一用双反斜杠\\或者前缀r标记为原始字符串,避免转义问题。

修正后可运行代码

import time
import pyautogui as auto
import os

# 启动ADF软件,路径加r标记为原始字符串避免转义
os.startfile(r"C:\Program Files (x86)\Analog Devices\ADF435x\ADF435x.exe")

time.sleep(2)

# 这里替换为你自己的ADF4350.png实际完整路径,或者把图片放脚本同目录直接写文件名
ADF4350_location = auto.locateCenterOnScreen(r"C:\Users\你的用户名\Pictures\ADF4350.png")
# 变量名统一
auto.click(ADF4350_location)

额外排查项

如果按上述修改后仍报错,按顺序排查:

  • 确认图片文件后缀确实是.png,不是被隐藏了后缀名的其他格式(比如jpg改名成png)
  • 确认Python进程对图片文件有读取权限,可以右键图片-属性-安全里检查权限配置
  • 截图的时候要确保截图内容和实际屏幕显示的ADF4350选项完全一致,包括缩放比例、明暗、周边内容,否则pyautogui匹配不到,但这种情况不会报文件读取错误,只会返回None。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:54:04