如何在 macOS 上使用 PyAutoGUI 库中的locateOnScreen 函数?

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

我尝试执行以下脚本:

import pyautogui
res = pyautogui.locateOnScreen('edit')
print(res)

但是,我遇到了以下错误消息:

回溯(最近一次调用最后一次): 文件“/Users/adigweleo/gui2.py”,第 2 行,位于 res = pyautogui.locateOnScreen('编辑') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件“/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pyautogui/init.py”,第 172 行,在包装器中 返回wrappedFunction(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件“/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pyautogui/init.py”,第 210 行,位于locateOnScreen 返回 pyscreeze.locateOnScreen(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件“/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pyscreeze/init.py”,第 375 行,位于locateOnScreen 截图Im = 截图( ^^^^^^^^^^^ 文件“/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pyscreeze/init.py”,第 527 行,位于 screenshot_osx if 元组(PIL__version_) < (6, 2, 1): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: '<' not supported between instances of 'str' and 'int'

我将所需的屏幕图像作为编辑存储在

Users/adigweleo
目录中。接下来,我创建并激活了一个新的虚拟环境。随后,我使用
pip
pip3
来安装 Pillow、pyautogui 和 pyscreeze。遗憾的是,尽管做出了这些努力,问题仍然存在,如上面显示的错误消息所示。

python macos animation python-imaging-library pyautogui
1个回答
0
投票

我对 pyscreeze 库做了一些查看,我得出的结论是版本是错误的。
如果你查看github,你可以看到

if PILLOW_VERSION < (6, 2, 1):
出现错误的行。
除非你查看自己的回溯,该行会显示
if tuple(PIL__version_) < (6, 2, 1): 
。这会导致类型错误,因为
PIL__version__
是一个字符串。
事实证明,github 上的 Pull request 99 已经落实到位并修复了。
更新 pyscreeze 应该可以解决问题。

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