如何在python中启动子进程而不是等待它返回

2024-06-16 09:57:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用django构建一个与用R编写的大型程序接口的站点,我希望在这个站点上有一个运行R程序的按钮。{1{1>没有使用预期的cd1},而是返回了<1}。因为这个程序可能需要几个小时才能运行,所以这不是一个真正的选择。
有没有办法运行R程序并继续执行python代码? 我到处找了找,找了subprocess.Popen(),但我没能让它起作用。
以下是我在视图中使用的通用代码:

if 'button' in request.POST:
    subprocess.call('R CMD BATCH /path/to/script.R', shell=True)
    return HttpResponseRedirect('')

希望我忽略了一些简单的事情。
谢谢您。在


Tags: django代码程序视图if站点button按钮
2条回答

你可以用包装纸subprocess.call(),该包装器将有自己的线程,它将在其中调用subprocess.call()方法。在

subprocess.Popen(['R', 'CMD', 'BATCH', '/path/to/script.R'])

进程将异步启动。在

示例:

^{pr2}$

您必须注意,即使在主进程停止之后,子进程也将运行。在

相关问题 更多 >