Из документации Pyautogui here метод locateCenterOnScreen возвращает None, когда он не может найти изображение на экране.
Обратите внимание, что вы ищете 2 результата с помощью этого метода, но None - это всего лишь один результат (так как метод обычно возвращает два, это кажется плохим дизайном для меня - вместо этого он должен вызывать исключение или, по крайней мере, возвращать кортеж с двумя объектами None).
Посмотрите на следующий пример, который является в основном то, что происходит с вами:
>>> foo,bar = None
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not iterable
Самый простой и наиболее Pythonic способ решения этого вопроса, на мой взгляд было бы просто, чтобы попытаться поймать его:
try:
buttonx,buttony = pyautogui.locateCenterOnScreen('who.jpg')
except TypeError:
""" Do something to handle the fact that the image was not found"""
EDIT: Чтобы ответить на ваш вопрос, затронутый в комментариях, кажется, что возникает недоразумение в отношении того, как эта библиотека работает или что она находит на экране. Вы даете библиотеке представление того, что ей нужно найти через какое-то изображение. Он работает намного лучше, когда это изображение без потерь, потому что тогда это точное, пиксельно-пиксельное представление. Затем библиотека выполняет поиск на экране компьютера для фактической вещи, представленной предоставленным изображением. Это не значит, что вы поднимаете проблемы, находите jpeg или png. Он находит фактический визуализированный объект. Итак, если вы сделаете снимок экрана для своего веб-браузера на своем рабочем столе, он найдет фактический значок из этого скриншота и нажмет на него, но только если он будет виден. Если он за другими окнами или чем-то, он не найдет его. Он не ищет экран для файла значка, а сам рендеринг самого значка. Так, например, если вы предоставили фактический файл .ico в библиотеку, он не сможет найти этот значок, если он был закрыт другим окном, хотя этот значок технически на вашем рабочем столе, потому что его нет в настоящее время оказаны.
НТН
Убедитесь, что "who.jpg" на самом деле существует. –
@ IgnacioVazquez-Abrams Я сделал.Он существует, и я также поместил полный путь этой картины. Еще одна проблема. – GLHF
* shrug * PyAutoGUI не согласен. –