我正在尝试在 MacOS 上使用 pyautoGUI 在屏幕上查找图像。我使用的代码如下:
import pyautogui
img = 'name.png'
img = pyautogui.locateCenterOnScreen(img)
有人可以帮助我吗?我本来希望获得图像的坐标,但我得到了错误:
Traceback (most recent call last):
File "/Users/cliente/Documents/Personal/dofusBot/bot.py", line 9, in <module>
img = pyautogui.locateCenterOnScreen(img)
File "/Users/cliente/miniconda/envs/analytics/lib/python3.10/site-packages/pyautogui/__init__.py", line 172, in wrapper
return wrappedFunction(*args, **kwargs)
File "/Users/cliente/miniconda/envs/analytics/lib/python3.10/site-packages/pyautogui/__init__.py", line 204, in locateCenterOnScreen
return pyscreeze.locateCenterOnScreen(*args, **kwargs)
File "/Users/cliente/miniconda/envs/analytics/lib/python3.10/site-packages/pyscreeze/__init__.py", line 420, in locateCenterOnScreen
coords = locateOnScreen(image, **kwargs)
File "/Users/cliente/miniconda/envs/analytics/lib/python3.10/site-packages/pyscreeze/__init__.py", line 375, in locateOnScreen
screenshotIm = screenshot(
File "/Users/cliente/miniconda/envs/analytics/lib/python3.10/site-packages/pyscreeze/__init__.py", line 527, in _screenshot_osx
if tuple(PIL__version__) < (6, 2, 1):
TypeError: '<' not supported between instances of 'str' and 'int'
这看起来像是 pyscreeze 中的一个“bug”,因为它没有跟上 Pillow 库(PIL)过去几年的更新,并对版本变量在该库中的定义方式做出了错误的假设。
pyscreeze 的开发者似乎已经在 2 个月前提交了 eeca245a135cf171c163b3691300138518efa64e 中解决了这个问题,但尚未发布任何新版本。您可以从源代码安装 pyscreeze,或者只是偷偷地修补您的安装(它只是一个
__init__.py
文件)。
如果您将 Pillow 降级几个版本,它也可能会起作用(但我不确定您需要降级到多远。大概不会超过 6.2.1,但那已经是 4 年前的版本了)。