首页 > 解决方案 > Python pyautogui - 未检测到图像时出现位置打印问题

问题描述

所以我制作了一个程序来检测图像并在它们出现时点击它们并且它工作正常但是有一天(如果我删除了我不应该删除的东西)但是现在当屏幕上没有该图像时它会引发异常。[代码和异常][1]

代码很简单:

import pyautogui
location1 = pyautogui.locateCenterOnScreen('velaki.png')
print(location1)

然后错误是:

Traceback (most recent call last):
File "C:\Users\Patroklos\Desktop\FoE\taxini.PY", line 3, in <module>
    location1 = pyautogui.locateCenterOnScreen('velaki.png')
  File "C:\Python34\lib\site-packages\pyscreeze\__init__.py", line 300, in locateCenterOnScreen
    coords = locateOnScreen(image, **kwargs)
  File "C:\Python34\lib\site-packages\pyscreeze\__init__.py", line 271, in locateOnScreen
    retVal = locate(image, screenshotIm, **kwargs)
  File "C:\Python34\lib\site-packages\pyscreeze\__init__.py", line 255, in locate
    points = tuple(locateAll(needleImage, haystackImage, **kwargs))
  File "C:\Python34\lib\site-packages\pyscreeze\__init__.py", line 249, in _locateAll_python
    raise ImageNotFoundException('Could not locate the image.')
pyscreeze.ImageNotFoundException: Could not locate the image.

通常,如果没有发现图像,它应该返回 None 不是异常。

![1]: https://i.stack.imgur.com/0ozRR.png

标签: pyautogui

解决方案


我和你有完全相同的问题。原来是 PyAutoGUI 的依赖之一;PyScreeeze 于 2019 年 1 月 6 日从版本 0.1.18 更新到 0.1.19。并且,0.1.19 版在无法找到终止脚本而不是返回“无”的图像之后的某个时间引发了 ImageNotFound 异常。

您需要做的就是将 PyScreeeze 从 0.1.19 降级到 0.1.18,它又可以正常工作了。


推荐阅读