Я запланировал сценарий Python в планировщике Windows, но сценарий не работает должным образом - PullRequest
1 голос
/ 22 мая 2019

У меня есть простой скрипт Python, который корректно запускается при запуске в Jupyter Notebook или после преобразования в .exe, но не работает при запуске с помощью планировщика Windows (я пытался запустить оба файла .pyи .exe).Чего мне не хватает?

Справочная информация:

У меня есть простой 3.7 скрипт Python, который я хотел бы запускать через регулярные промежутки времени.Я тестирую подход с простым скриптом Python, прежде чем перейти к более сложному скрипту.

У меня есть скрипт, который хорошо работает, когда я запускаю его в Jupyter, но он не работает при использовании планировщика Windows.Я создал базовую задачу в планировщике Windows и установил следующие свойства:

  • general: запускается только при входе пользователя в систему;
  • триггеров: daily;
  • действие: я пробовал несколько комбинаций входов.Последнее, что я пытался сделать, это иметь в папке «program / script» C: \ Pythondata \ dist \ test.exe без дополнительных аргументов;
  • условия и настройки: я сохранил параметры по умолчанию.

Когда я нажимаю на задачу RUN в планировщике Windows, на несколько секунд появляется окно, похожее на команду, на черном фоне, затем оно исчезает, но ничего не происходит, и выходной текстовый файл не редактируется.Я не получаю сообщений об ошибках, и когда я проверяю «Журнал» задачи, появляется «Задача выполнена» или «Регистрация задачи обновлена».В принципе, похоже, что ошибки нет, но пока ничего не происходит.

Я бы хотел решить эту проблему с помощью планировщика Windows, но я также открыт для предложений о способах регулярного запуска сценариев.Тем не менее, я очень простой пользователь Python и, возможно, не смогу делать более сложные вещи.Моя система - Windows 10 Home, Python 3.7.

Простой код, который я использую:

import datetime
now = datetime.datetime.now()

file = open("testfile.txt","w")

file.write("Hello Word" + str(now))
print("done")

Примечание. Сценарий записывает метку даты в текстовом файле в той же папке.файл ipynb.Я также преобразовал файл в .exe с помощью pyinstaller.в обоих случаях скрипт работает хорошо.Однако он не работает с планировщиком Windows.

1 Ответ

0 голосов
/ 22 мая 2019

По моему опыту, планировщик заданий Windows не очень хорошо работает с Python. Попробуйте создать файл .bat со следующим:

cmd full\path\to\python.exe "full\path\to\script.py" > output.log 2>&1

Это командный файл, который откроет cmd.exe и выполнит ваш скрипт на вашем исполняемом файле python. Затем он перенаправит STDOUT и STDERR в файл, чтобы вы могли увидеть, что пошло не так.

Скажите планировщику задач запустить этот пакетный файл (без других аргументов) вместо скрипта Python и посмотреть, что идет в журнал. Либо он будет нормально работать с командным файлом, либо у вас будет больше информации для устранения неполадок.

...