При запуске скрипта через планировщик заданий возникает ошибка

У меня есть такой скрипт (он упрощён, для удобства):

import pyautogui

if pyautogui.locateOnScreen('1.png'):
    print('found')

Он пытается найти на экране картинку 1.png и если находит, то принтит found

Так же, есть батник, умеющий запускать этот скрипт.

@echo off
C:\Python\Python39\python.exe "C:\Python\routineAuto.py" %*
pause


Так вот, при запуске скрипта вручную (не важно, через батник или напрямую) всё работает так как нужно, а при его запуске через планировщик заданий возникает эта ошибка:

Traceback (most recent call last):
  File "C:\Python\routineAuto.py", line 9, in <module>
    if pyautogui.locateOnScreen('1.png'):
  File "C:\Python\Python39\lib\site-packages\pyautogui\__init__.py", line 175, in wrapper
    return wrappedFunction(*args, **kwargs)
  File "C:\Python\Python39\lib\site-packages\pyautogui\__init__.py", line 213, in locateOnScreen
    return pyscreeze.locateOnScreen(*args, **kwargs)
  File "C:\Python\Python39\lib\site-packages\pyscreeze\__init__.py", line 372, in locateOnScreen
    retVal = locate(image, screenshotIm, **kwargs)
  File "C:\Python\Python39\lib\site-packages\pyscreeze\__init__.py", line 352, in locate
    points = tuple(locateAll(needleImage, haystackImage, **kwargs))
  File "C:\Python\Python39\lib\site-packages\pyscreeze\__init__.py", line 206, in _locateAll_opencv
    needleImage = _load_cv2(needleImage, grayscale)
  File "C:\Python\Python39\lib\site-packages\pyscreeze\__init__.py", line 169, in _load_cv2
    raise IOError("Failed to read %s because file is missing, "
OSError: Failed to read 1.png because file is missing, has improper permissions, or is an unsupported or invalid format

Можно ли сделать так, чтоб в планировщике заданий этот скрипт тоже работал, и, если да, то как?

UPD:
Батник запускается с наивысшими правами ______________________________________
Вот, что касается каталога из которого запущен и батник, и скрипт:введите сюда описание изображения

______________________________________
Я попробовал изменить относительный путь картинки на полный. Вот изменённая строчка скрипта:

if pyautogui.locateOnScreen('‪C:\\Python\\1.png'):

И ничего не поменялось. Как, была ошибка, так и осталась. (ಠ╭╮ಠ)

Вот, вроде добавил больше ясности, надеюсь это поможет решить проблему.


Ответы (1 шт):

Автор решения: Kirill

Всё заработало, после того как я поменял кодировку python скрипта на ANSI.

Как я до этого допёр:

Сначала, скрипт запускался без ошибок, только почему-то планировщик задач не мог его нормально запустить. Эту ситуацию я и описал в вопросе.

Но потом, после перезапуска компьютера, через какое-то время скрипт запускался с той самой ошибкой, не зависимо от того вручную я его запускаю или через планировщик

Я немного потыкался в блокноте, пытаясь исправить это, и при сохранении скрипта мне вылезло это:

Этот файл содержит текст в формате Юникод, который будет потерян, если вы сохраните этот файл как файл в формате ANSI. Чтобы сохранить данные в формате Юникод нажмите кнопку "Отмена" и выберите один из вариантов сохранения в формате Юникод. Продолжить

Я сделал как там сказано, нажал кнопку Отмена и сохранил файл в utf-8, но ошибка осталась. Но после того, как я поменял кодировку самого текста, а не файла всё заработало так как надо и планировщик задач тоже :')
Ох уж это великое разнообразие кодировок, столько хлопот оно доставило и доставляет по сей день)

→ Ссылка