Запуск скрипта python в виртуальной среде из планировщика задач windows
Я пытаюсь настроить повторяющуюся задачу Python через планировщик задач windows.
У меня был успех, когда я ввел путь к ' python.exe ' и предоставить путь скрипта в качестве параметра планировщику задач windows (см. скриншот ниже)
Однако я хочу иметь возможность выбрать конкретную виртуальную среду, в которой будет выполняться сценарий. У меня не так много знаний о venv, и я обычно использую его, открывая cmd и запуская Scriptsactivate.летучая мышь в нужный каталог виртуальной среды.
Как я могу выполнить "запуск задачи x в venvxxx каждые 24 часа" с помощью планировщика задач windows?
2 ответов:
Создайте пакетный файл с помощью следующих команд:
c:\__full_path_to_virtualenv__\Scripts\activate.bat && python __full_path_to_python_script__.py&& означает выполнить command2 , Если command1 успешно завершена.
Затем установите этот пакетный файл в качестве сценария для запуска. Вам не нужно устанавливать дополнительные аргументы в планировщике задач (или вы можете установить их в пакетном файле в любом случае) и можете установить Start в, если скрипт должен читать/писать из определенного каталога и использует относительные пути.
Хотя ответ mx0 выше, кажется, работает, я настроил планировщик задач для запуска веб-приложения flask при загрузке. В этом случае ручной запуск работает нормально, но ручной конец-нет. Завершение задачи убивает cmd.exe-задача, которая настраивает виртуальную среду, но на python.exe продолжает работать.
Решение, которое я нашел, работало из этого сообщения reddit , которое пропускает активацию виртуальной среды, чтобы вызвать исполняемый файл python напрямую:
path\to\venv\Scripts\python.exe path\to\script.pyЯ не уверен. насколько это будет надежно, но, по крайней мере, таким образом, завершение задачи завершит python.exe

Comments