pyautogui 无法在 MacOS 上运行('<' not supported between instances of 'str' and 'int')

问题描述 投票:0回答:1

我正在尝试在 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'
python-3.x pyautogui image-recognition
1个回答
0
投票

这看起来像是 pyscreeze 中的一个“bug”,因为它没有跟上 Pillow 库(PIL)过去几年的更新,并对版本变量在该库中的定义方式做出了错误的假设。

pyscreeze 的开发者似乎已经在 2 个月前提交了 eeca245a135cf171c163b3691300138518efa64e 中解决了这个问题,但尚未发布任何新版本。您可以从源代码安装 pyscreeze,或者只是偷偷地修补您的安装(它只是一个

__init__.py
文件)。

如果您将 Pillow 降级几个版本,它也可能会起作用(但我不确定您需要降级到多远。大概不会超过 6.2.1,但那已经是 4 年前的版本了)。

© www.soinside.com 2019 - 2024. All rights reserved.