Выполнить скрипт Python из другого, передать аргумент и вернуть глобальную переменную - PullRequest
1 голос
/ 17 октября 2019

Я пытаюсь создать планировщик заданий в Python. Планировщик (то есть родительский сценарий) будет затем запускать дочерние сценарии (также в Python).

Кажется, лучший способ сделать это - через подпроцесс, который апеллирует, поскольку я хочу иметь возможность отменить / тайм-аутрассматриваемый процесс / скрипт, если он выполняется слишком долго.

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

Я могу успешно передать аргумент в дочерний скрипт и выполнитьЭто. Однако я не уверен, как получить объект, который «возвращает» дочерний скрипт. Поэтому, если, например, мой дочерний скрипт был разработан для возврата словаря, я бы хотел сослаться на данные в этом словаре в моем родительском скрипте.

Очевидно, если это нужно сделать другим способомтогда это нормально, но очень важно, чтобы я мог завершить процесс и передать аргументы любым дочерним сценариям.

Пример кода:

import subprocess
my_timeout_in_seconds = 60
job_data = subprocess.run([sys.executable, path_to_my_script, argument_to_pass],
                          shell=False, timeout=my_timeout_in_seconds)
...