Запустить скрипт Python из скрипта Python, НО вне скрипта Python

1

Это звучит как загадка или шутка, но на самом деле я не нашел ответа на эту проблему.

На самом деле проблема?

Я хочу запустить 2 скрипта. В первом скрипте я вызываю другой скрипт, но я хочу, чтобы они продолжались параллельно, а не в двух отдельных потоках. В основном я не хочу, чтобы второй скрипт выполнялся внутри первого скрипта python (это означает, что если я запустил браузер Chrome из сценария python, а затем выключил скрипт python, Chrome тоже будет отключен).

То, что я хочу, похоже на Linux-машину: я открываю два терминала и запускаю оба сценария в каждом терминале. Они не два потока, они независимы друг от друга, закрытие одного не будет отключать другое. Или это может быть как на машине Linux, где я могу запускать 2 сценария python в терминале за фоном с символом python xxx.py & '(&).

Резюме:

Я хотел бы запустить скрипт скрипта "FIRST.py" "SECOND.py". Однако не с потоковым модулем и, главным образом, скриптом SECOND.py, независимым от скрипта FIRST.py, то есть выключение FIRST.py не будет иметь никаких последствий для SECOND.py. РЕШЕНИЕ ДОЛЖНО РАБОТАТЬ НА WINDOWS, LINUX И MAC.

BTW: Я пробовал окна:

subprocess.call(['python','second.py','&'])
subprocess.call(['python','second.py'])
os.system('python second.py') # I was desperate
  • Они запускаются серийно, поэтому скрипт first.py блокируется до завершения second.py.

У меня нет попытки Threading с daemon = False, но я чувствую, что это своего рода Demon, и я не чувствую, что мое умение настолько далеко, что я могу контролировать потоки, существующие за пределами моей игровой площадки :)

Заранее спасибо за помощь

Теги:
scripting
parallel-processing
execute

1 ответ

0

Вы можете использовать конструктор Popen из модуля subprocess для запуска фоновых процессов, используя

import subprocess
p = subprocess.Popen(["python","second.py"])

создает фоновый процесс, и выполнение first.py не блокируется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню