Как мне создать отдельный процесс python?

#python #subprocess #spawn

#python #подпроцесс #создать

Вопрос:

Мне нужно создать отдельный процесс Python, который запускает вспомогательный скрипт.

Например:

main.py запускает и выводит некоторый вывод на консоль. Затем он появляется sub.py который запускает новый процесс. Однажды main.py породил sub.py он должен завершиться, пока sub.py продолжает выполняться.

Спасибо.

Редактировать:

Когда я запускаю main.py он печатает ‘main.py ‘ но больше ничего и sub.py не запускается.

main.py

 print "main.py"

import subprocess as sp
process=sp.Popen('sub.py', shell=True, stdout=sp.PIPE, stderr=sp.PIPE)
out, err = process.communicate(exexfile('sub.py'))  # The output and error streams

raw_input("Press any key to end.")
  

sub.py

 print "sub.py"
raw_input("Press any key to end.")
  

Комментарии:

1. В какой операционной системе вы работаете? Вы запускаете main.py из какой-нибудь ide?

Ответ №1:

execfile

Простой подход:

 execfile('main.py')
  

Подпроцесс

Предлагает детальный контроль над вводом и выводом, может запускать процессы в фоновом режиме:

 import subprocess as sp
process=sp.Popen('other_file.py', shell=True, stdout=sp.PIPE, stderr=sp.PIPE)
out, err = process.communicate()  # The output and error streams.
  

Комментарии:

1. Вам нужно ввести данные в communicate метод. Скоро отредактирую свой ответ.

2. Спасибо. Я добавил exexfile('sub.py') в communicate() метод, и теперь он запускает sub.py файл, но в той же консоли, так как же заставить его запускаться отдельно? Возможно, я упускаю что-то действительно простое, извините. Еще раз спасибо.

3. >> Один раз main.py породил sub.py он должен завершиться, пока sub.py продолжает выполняться.