程序在主机上运行的好好的,搬到服务器上部署的时候出问题了。。
最开始是调用pyautogui.locateCenterOnScreen()(pyautogui以下简称PAG)报这个:
pyscreeze.ImageNotFoundException: Could not locate the image (highest confidence = 0.395)
后面查了一下,发现是PyScreeze(以下简称PS)在0.1.19版本时,将定位不到图片的处理方式从return None变成了报错,给出的解决方法很简单,就是降级到0.1.18
降级后不出意外的还是报错,毕竟0.1.18都是5年前的东西了,所以索性就看看主机这边的环境,通过pip show pyautogui查询得主机的版本为0.9.53,然后我就给服务器那边的PAG降级到这个版本,然后意外又发生了,还是PS引起的,大概就是PAG说PS导不进来,我又看了一下主机这边的PS版本,是0.1.28,服务器那边是0.1.30(最新版),我就把服务器那边的PS降级到0.1.28,搞定
所以PAG和PS的版本最好是一一对应,PAG 0.9.54能用的PS 0.1.30,在PAG 0.9.53就用不了了
当然最开始报错时如果直接加一个try except就能直接解决了
比如从这样
while 1:
location = pyautogui.locateCenterOnScreen(image_path, confidence=0.8)
变成这样
while 1:
try:
location = pyautogui.locateCenterOnScreen(image_path, confidence=0.8)
except:
continue
至于最开始为什么不改代码
因为我懒啊
以为降个级能搞定的事情,谁想到能扯出来这么多鬼bug。。。。。