Планирование файла.py в планировщике заданий в Windows 10

Я уже пытался преобразовать файл.py в файл.exe. К сожалению, файл.exe дает проблемы; Я считаю, что это потому, что мой код довольно сложный. Итак, я пытаюсь запланировать непосредственно мой.py файл с помощью планировщика заданий, но каждый раз, когда я это делаю, а затем запускаю его, чтобы увидеть, работает ли оно, появляется окно и спрашивает, как я хочу открыть программу? -.-

Кто-нибудь из вас знает, как я могу запланировать мой.py файл с помощью Task Scheduler? Пожалуйста, помогите, спасибо

Windows 10 Python 3.5.2

Ответ 1

Создание exe должно быть лучшим методом. Но если вы хотите запустить его с помощью планировщика задач, вы можете сделать это следующим образом:

  1. Запустите планировщик задач Windows
  2. Найдите панель "Действия" (справа), в которой есть действие "Создать базовую задачу". Нажмите здесь.
  3. Откроется мастер, в котором вы определите имя своей задачи, триггер (когда он выполняется) и действие (какую программу запустить). На вкладке "Действие" указывается имя запускаемого сценария Python, а также любые аргументы сценария.

Чтобы гарантировать, что ваш скрипт Python будет работать независимо от учетной записи входа, которую использует задача расписания, и чтобы избежать путаницы в том, какая версия Python используется в смешанных средах (64-битной или 32-битной), рекомендуется запускать исполняемый файл Python с имя вашего файла Python в качестве аргумента для исполняемого файла.

Предположим, что вы хотите запустить скрипт E:\My script.py. Вместо непосредственного запуска сценария, поручите планировщику задач запустить python.exe со сценарием в качестве аргумента. Например:

C:\Python27\ArcGIS10.2\python.exe "E:\My script.py"

Расположение python.exe зависит от вашей установки. Если вы не знаете, где это, вы можете узнать его местоположение; скопируйте и вставьте следующий код в новый скрипт Python, затем выполните скрипт. Сценарий распечатает расположение python.exe, а также другую информацию о вашей среде Python.

import sys
import platform
import imp

print("Python EXE     : " + sys.executable)
print("Architecture   : " + platform.architecture()[0])
print("Path to arcpy  : " + imp.find_module("arcpy")[1])

raw_input("\n\nPress ENTER to quit")

После определения местоположения python.exe, это то, что вводится на панели действий планировщика задач: enter image description here

Если в вашем скрипте есть дополнительные аргументы (параметры), укажите их после пути к вашему скрипту. Надеюсь это поможет.

Ответ 2

Вы должны установить на вкладке Action:

  • в программах путь к вашему python.exe: например, "C:\Users\Me\AppData\Local\Programs\Python\Python36\python.exe"
  • в аргументах - полный путь к вашему файлу, включая расширение: например, "C:\Users\Me\Desktop\mypythonsrcipt.py"
  • для начала: оставьте пустым

Если это не работает, попробуйте:

  • в программах путь к вашему python.exe: например, "C:\Users\Me\AppData\Local\Programs\Python\Python36\python.exe"
  • в аргументах ваше имя файла с расширением: например, "mypythonsrcipt.py"
  • в начале, в папке вашего скрипта: например, "C:\Users\Me\Desktop\"

Также каждый раз, когда я изменяю задачу, учетная запись пользователя на вкладке General переключается на средний обязательный уровень. Поэтому я должен снова открыть Taks и установить учетную запись пользователя обратно на мое имя пользователя: (см. Этот вопрос)

enter image description here

Если вы все еще не можете запустить скрипт, зайдите в Журнал событий, Журнал Applications and Service Log/Microsoft/Windows/TaskScheduler/Operational (щелкните его правой кнопкой мыши, чтобы включить его) и найдите ошибки.

Ответ 3

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

Создайте пакетный файл:

SET logfile="C:\Reports\batch.log"
@echo off
@echo Starting Script at %date% %time% >> %logfile%
"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe" "C:\Users\sys_www\source\repos\hardware\ReportAssembler.py"
@echo finished at %date% %time% >> %logfile%

Затем укажите командный файл в части действия конфигурации задачи. Одна вещь, чтобы также позаботиться о том, чтобы все файлы, написанные во время выполнения программы python, фактически могли быть доступны пользователю, выполняющему сценарий.

Я попытался использовать скрипт в качестве параметра и python exe в программе/скрипте. Сначала я запускаю сообщение об ошибке "Запланированные задания Windows не запущены". Затем после некоторой настройки вокруг я получил ошибку 0x1, которая ничего мне не сказала.

Ответ 4

Исполняемый скрипт будет exe найден в вашем каталоге python ex) C:\Python27\python.exe

"Аргумент" - это путь к вашему сценарию ex) C:\Path\To\Script.py

Поэтому подумайте об этом так: вы не выполняете свой сценарий технически как запланированное задание. Вы выполняете root python exe для своего компьютера, когда ваш скрипт подается в качестве параметра.

Ответ 5

Это сработало для меня, вы можете попробовать с панели действий: панель действий

Обратите внимание, что путь к файлу py в двойных кавычках, добавьте аргументы: $ (Arg0)

Установите флажок "Запускать с наивысшими привилегиями" на вкладке "Общие", и лучше выбрать "Запускать новый экземпляр параллельно" в раскрывающемся меню на вкладке "Настройки".

В конце концов, вы можете установить расписание для задачи на вкладке "Триггеры", чтобы проверить влияние изменений (не забудьте выбрать "Выполнить, вошел ли пользователь в систему или нет" на вкладке "Общие").

Ответ 6

По какой-то причине планировщик задач Windows запускает python.exe в среде, где они терпят неудачу в операторах import-модуля. Мне пришлось использовать обходной путь, используя CMD.exe и передать команду для запуска сценария Python в данной папке.

Используйте программу

CMD

затем вкладка параметров:

/c python main.py

и заполните исходное местоположение во вкладке Start in:

C:\Users\...

Не уверен, что причина этого. Ранее описанные решения у меня не сработали.