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

pyautogui脚本正常运行,pyinstaller打包为exe后报错如何解决?

问题原因

locateOnScreen方法的confidence参数依赖OpenCV库实现,你本地Python环境已安装opencv-python所以直接运行脚本正常,但PyInstaller 5.0打包时默认不会将PyScreeze(pyautogui依赖的底层图像识别库)所需的cv2模块依赖打入exe包,运行时检测不到OpenCV就会自动切换到纯Python实现的识别逻辑,该逻辑不支持confidence参数,因此触发报错。

解决方案
  • 先确认本地环境已安装OpenCV依赖,未安装可执行命令:
    pip install opencv-python
  • 打包时显式指定导入cv2隐藏模块,避免PyInstaller漏打依赖,示例打包命令如下(将原命令对应替换即可):
    pyinstaller -F --hidden-import cv2 interface.py
  • 同时需要处理静态图片的路径寻址问题,否则打包后exe会找不到你调用的PNG图片:
  1. 先在代码中新增路径适配函数,替换原有硬编码的相对路径写法:
import sys
import os

def get_resource_path(relative_path):
    # 适配打包运行和本地脚本运行两种场景的路径寻址
    if getattr(sys, 'frozen', False):
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

# 调用locateOnScreen时使用适配后的路径
ScreenLocation = pa.locateOnScreen(get_resource_path(r'module\images\location.PNG'), confidence=0.7)
  1. 打包时添加参数将图片目录一起打入包中,Windows环境下完整打包命令示例:
    pyinstaller -F --hidden-import cv2 --add-data "module/images/*;module/images/" interface.py
  • 若调整后仍报错,可尝试降级OpenCV版本适配PyInstaller 5.0,执行命令后重新打包即可:
    pip install opencv-python==4.5.5.62

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:06:04