как назвать программу из Python, не ожидая его для возврата

существует ли способ назвать программу из Python, не ожидая его для возврата? я создал сценарий, который копирует программу в каталог и запускает ту программу. но когда я называю программу из Python, сценарий Python не выходит до программы я запустил выходы. я попробовал os.system, и Popen. является там другим способом сделать это?

Добавленная информация: os.spawnl с OS. P_DETACH все еще не работает; согласно документам, "P_DETACH подобен P_NOWAIT, но новый процесс отсоединяется от консоли обработки вызовов". но это все еще так или иначе присоединено к моей обработке вызовов (сценарий выполнения вызова не выйдет ни до одного названного исполнимого возврата),

Программа:

os.system("start test.exe")
print "Done"

после того, как это выполнит test.exe, это печатает Сделанный. но это не завершает выполнение сценария (процесс сценария, все еще работающий). испытанное создание потока демона и Popen с P_DETACH, тем не менее никакие не идут.

21
задан maranas 8 April 2010 в 20:27
поделиться

3 ответа

Я опубликовал решение, как отсоединить процесс, в предыдущем вопросе .

9
ответ дан 29 November 2019 в 22:03
поделиться

Используя poll () вместо wait () в Popen , он не будет блокироваться и не будет ждать запуска программы. Однако я думаю, что единственный способ действительно остановить ожидание всей программы - это создать демонический поток, который запускает процесс. Таким образом, вам никогда не придется его ждать.

class MyThread(threading.Thread):
    def run(self):
        '''Start your thread here'''
        pass

thread = MyThread()
thread.daemon = True
thread.start()
4
ответ дан 29 November 2019 в 22:03
поделиться

В Windows, если вы вызываете программу с помощью команды оболочки START , вы должны иметь возможность «освободить» родительский процесс и разрешить это для выхода. Попробуйте ввести START /? в командной строке DOS, чтобы узнать больше.

2
ответ дан 29 November 2019 в 22:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: