как запустить исполняемый файл в Python, не блокируя выполнение Python - PullRequest
0 голосов
/ 29 февраля 2012

В Linux у меня есть исполняемый файл, который должен запускаться следующим образом: ./a.exe inputdata

Я хочу запустить этот исполняемый файл в моем скрипте Python, но не хочу блокировать остальныекода Python.

Я пробовал что-то подобное, но

# launch sensor node
def launchA():
    subprocess.Popen(["Path/a.exe", inputdata])

if __name__ == '__main__':
    p = multiprocessing.Process(target=launchA,args=())
    p.start()
    print("sensorlaunched")

Однако процесс luanchA по-прежнему блокирует функцию печати. ​​

Что пошло не так в моем коде?Спасибо!

1 Ответ

3 голосов
/ 29 февраля 2012

То, что вы делаете, - это просто излишество: вы создаете процесс с помощью multiprocessing для управления процессом, созданным с помощью subprocess. Просто используйте subprocess:

p = subprocess.Popen(["Path/a.exe", inputdata])

Теперь p - это дескриптор, ссылающийся на запущенный процесс a.exe, и ваш скрипт может продолжать делать то же, что и он.

...