Запустите новый скрипт python (asyn c), начиная с HttpServer - PullRequest
0 голосов
/ 16 апреля 2020

Я хотел бы иметь простой python веб-сервер, который можно запускать для запуска скриптов. Таким образом, у меня есть работающий HttpServer, веб-сайт и кнопка, которая может сделать вызов. Я хочу запустить скрипт отдельно от процесса HTTPServer. Так же известен asyn c.

. Я попробовал вариант с os.system(command), но он использует тот же поток. Так пробовал с subprocess.run([command,path]) и subprocess.check_call но все пишет в один и тот же поток похоже. (Может ли Windows быть проблемой здесь?)

Затем попытался поместить действие в поток с помощью _thread.start_new_thread и threading.Thread(target=class.static_method, args=args ), но поток, кажется, запускается правильно (путем проверки отладки), но сценарий, похоже, не

После создания тестового сценария с тем же действием subprocess.run работает хорошо. Итак, как мне запустить отдельный или отдельный процесс в HttpServer?

Некоторые попытки:

with open(f"{log_folder}run{counter}.log","w+") as logfile:
    subprocess.check_call(command, stdout=logfile)

В действии на HTTPServer:

t1 = threading.Thread(target=Controller.run_script, args=args )
t1.start()

Пробовал без вывод (который работал в тестовом сценарии, но не через процесс de HttpServer)

subprocess.check_call(command, stdout=subprocess.DEVNULL)

Dev env: Windows Python: 3.8

...