调用方法时,独立运行python脚本

时间:2016-01-27 16:29:51

标签: python django

我正在编写一个django应用程序,我需要调用一个python脚本,在调用方法foo.py时说bar。脚本foo.py可能需要花费大量时间才能执行,因为它会迭代数据库中的数百万行。这就是为什么我不想等待它的输出,我希望文件完全由OS执行。我试过了:

execfile
os.system
subprocess.Popen
subprocess.call

但是他们都在等待文件产生输出。我怎样才能做到这一点?是否存在我缺少的模块,或者我是否可以编写一个“观察者脚本”,如果调用了bar方法,它将独立运行foo.py文件而不让方法完成执行而不是等待。

1 个答案:

答案 0 :(得分:1)

可能你做错了什么,因为纯subprocess.Popen不等待子进程的结束......

尝试使用以下示例:

bar.py:

import subprocess

subprocess.Popen(['python', 'foo.py'])
print '123'

foo.py:

import time

time.sleep(50)

运行bar.py:

我立即看到" 123"输出,我也看到" python"在进程列表中