我正在写一个程序,它能够检测我正在寻找的任何口袋妖怪的闪亮精灵,然而,每当我运行pyautogui.locateOnScreen()时,我都会引发TypeError:在“str”和“int”的示例之间不支持“<”
import pyautogui as pag
pag.locateOnScreen('beldum.png')
我也是自己截图的,不过听说用pyautogui自带的截图功能更好。我试着这样做,但我得到同样的类型错误,每当我尝试这样做。
这是我得到的追踪结果。
Traceback (most recent call last):
File "/path/to/file", line 3, in <module>
pag.locateOnScreen('beldum.png')
File "/path/to/venv/lib/python3.11/site-packages/pyautogui/__init__.py", line 172, in wrapper
return wrappedFunction(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/path/to/venv/lib/python3.11/site-packages/pyautogui/__init__.py", line 210, in locateOnScreen
return pyscreeze.locateOnScreen(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/path/to/venv/lib/python3.11/site-packages/pyscreeze/__init__.py", line 375, in locateOnScreen
screenshotIm = screenshot(
^^^^^^^^^^^
File "/path/to/venv/lib/python3.11/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'
1条答案
按热度按时间izkcnapc1#
我在使用pyautogui时遇到了同样的问题。我使用的是Python 3.8,pyautogui的版本是9.5.0。实际上,这是Python框架包中的一个bug。我不知道Python 3.11是否也是这样。不管怎样,这就是我遇到这个问题并解决它的方式。
我有这个错误报告:
然后我点击这个报告文件并追溯
PIL__version__
的值。它的定义是这样的:__version__ = "9.5.0"
现在我们找到问题了。一个简单的测试程序可以告诉你一切:
您将得到如下输出:
它们都是元组,但是这个元组中的元素是
str
和int
类型。当然不能相提并论。因此,您需要单击报告的错误文件。替换此代码:
用这个代码:
现在一切都正常了。