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

运行PyAutoGUI代码出现Python文件缺失/权限/格式无效错误如何解决?

报错核心原因

你遇到的报错是pyautogui.locateOnScreen()方法触发的,核心原因是传入的green_dot.png文件无法被正常读取,和你代码里的坐标操作逻辑无关。

定位排查步骤
  • 第一步:确认图片路径是否正确
    你代码里写的是相对路径,该路径是相对于脚本执行时的终端工作目录,不是脚本本身的存放目录,两者可能不一致。可以在函数开头加代码打印当前工作目录确认:
import os
print("当前工作目录:", os.getcwd())

打印后查看对应目录下是否存在green_dot.png文件。

  • 第二步:确认依赖是否完整
    使用confidence精度匹配参数必须安装opencv依赖,缺失该依赖时pyautogui也会抛出文件相关的异常。
  • 第三步:确认文件本身合法
    检查图片文件是否损坏、是否有读取权限,不要使用其他格式强行改后缀为png的文件,也不要用带透明通道的特殊png。
解决方法
  1. 优先使用绝对路径指向图片
    Windows示例:r'C:\Users\xxx\Desktop\green_dot.png'
    Mac/Linux示例:/home/xxx/desktop/green_dot.png
  2. 安装缺失依赖
    执行命令:pip install opencv-python pyautogui
  3. 修复文件权限/格式
    Windows下右键图片→属性→安全,确认当前用户有读取权限;Linux/Mac下执行chmod 644 green_dot.png授予读取权限。如果图片损坏,重新截图保存为普通无透明通道的png格式即可。
  4. 补充代码容错逻辑,避免后续异常
    优化后的代码如下:
import os
def nav_green_dot(self):
    try:
        # 替换为你的图片绝对路径
        img_path = r'C:\Users\xxx\Desktop\green_dot.png'
        if not os.path.exists(img_path):
            print(f"图片文件不存在:{img_path}")
            return
        position = pt.locateOnScreen(img_path, confidence=.7)
        # 避免未匹配到图片时坐标取值报错
        if not position:
            print("当前屏幕未匹配到绿点")
            return
        pt.moveTo(position[0:2], duration=self.speed)
        pt.moveRel(-100, 0, duration=self.speed)
        pt.doubleClick(interval=self.click_speed)
    except Exception as e:
        print('Exception (nav_green_dot): ', e)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:39:03