Планирование файла.py в планировщике заданий в Windows 10
Я уже пытался преобразовать файл.py в файл.exe. К сожалению, файл.exe дает проблемы; Я считаю, что это потому, что мой код довольно сложный. Итак, я пытаюсь запланировать непосредственно мой.py файл с помощью планировщика заданий, но каждый раз, когда я это делаю, а затем запускаю его, чтобы увидеть, работает ли оно, появляется окно и спрашивает, как я хочу открыть программу? -.-
Кто-нибудь из вас знает, как я могу запланировать мой.py файл с помощью Task Scheduler? Пожалуйста, помогите, спасибо
Windows 10 Python 3.5.2
Ответы
Ответ 1
Создание exe должно быть лучшим методом. Но если вы хотите запустить его с помощью планировщика задач, вы можете сделать это следующим образом:
- Запустите планировщик задач Windows
- Найдите панель "Действия" (справа), в которой есть действие "Создать базовую задачу". Нажмите здесь.
- Откроется мастер, в котором вы определите имя своей задачи, триггер (когда он выполняется) и действие (какую программу запустить). На вкладке "Действие" указывается имя запускаемого сценария 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, это то, что вводится на панели действий планировщика задач:
Если в вашем скрипте есть дополнительные аргументы (параметры), укажите их после пути к вашему скрипту. Надеюсь это поможет.
Ответ 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 и установить учетную запись пользователя обратно на мое имя пользователя: (см. Этот вопрос)
Если вы все еще не можете запустить скрипт, зайдите в Журнал событий, Журнал 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\...
Не уверен, что причина этого. Ранее описанные решения у меня не сработали.