pyautogui 在 MacOS 上不起作用(“str”和“int”的实例之间不支持“<”)

pyautogui not working on MacOS ('<' not supported between instances of 'str' and 'int')

提问人:Lucas Coimbra 提问时间:8/10/2023 最后编辑:Mikael ÖhmanLucas Coimbra 更新时间:8/11/2023 访问量:179

问:

我正在尝试在 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 图像识别

评论

1赞 Mikael Öhman 8/10/2023
您没有包含整个堆栈跟踪,这将包含很多有用的信息。
0赞 Lucas Coimbra 8/10/2023
@MikaelÖhman对不起,我是新来的,我现在说,谢谢你的提醒!

答:

1赞 Mikael Öhman 8/11/2023 #1

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

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

如果您将 Pillow 降级几个版本,它也可能有效(但我不确定您需要走多远。大概不超过 6.2.1,但那是 4 年的历史)。