如何在不阻止python执行的情况下在python中启动可执行文件

时间:2012-02-29 16:53:41

标签: python linux subprocess multiprocessing

在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 个答案:

答案 0 :(得分:3)

您所做的是纯粹的过度杀伤:您正在使用multiprocessing创建一个流程来管理使用subprocess创建的流程。只需单独使用subprocess

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

现在p是一个引用正在运行的a.exe进程的句柄,您的脚本可以继续执行它正在执行的操作。