MacOS下PyAutoGUI查找屏幕图片报错:'<' not supported between instances of 'str' and 'int'
MacOS下PyAutoGUI查找屏幕图片报错:'<' not supported between instances of 'str' and 'int'
嗨,这个问题我之前踩过坑!这其实是PyAutoGUI依赖的pyscreeze库在处理PIL(Pillow)版本号时的一个小bug,具体原因是代码里把PIL版本号的字符串片段直接和整数做比较了——比如你的PIL版本号是类似"9.1.0"这样的字符串,拆分成元组后每个元素都是字符串类型,和(6, 2, 1)里的整数元素自然没法用<比较,就抛出了你看到的类型错误。
给你两个解决办法:
方法一:升级pyscreeze到最新版本
这个bug已经在后续版本的pyscreeze里修复了,直接执行升级命令就行:pip install --upgrade pyscreeze升级完之后再运行你的代码,应该就能正常获取图片坐标了。
方法二:手动修改pyscreeze的代码(如果暂时没法升级)
找到报错文件的路径:/Users/cliente/miniconda/envs/analytics/lib/python3.10/site-packages/pyscreeze/__init__.py,打开它找到_screenshot_osx函数里的这段代码:if tuple(PIL__version__) < (6, 2, 1):把它改成下面这样,把版本号的每个片段转换成整数再比较:
if tuple(map(int, PIL__version__.split('.'))) < (6, 2, 1):保存文件后重新运行代码,错误就会消失。
另外提个小建议:如果之后还是找不到图片,可以检查下name.png是不是在你的代码运行的当前工作目录里,或者直接用绝对路径指定图片位置,比如/Users/cliente/Documents/Personal/dofusBot/name.png,这样更稳妥。
备注:内容来源于stack exchange,提问作者Lucas Coimbra
相关产品推荐
相关产品推荐

