p = subprocess.Popen(['python2.7', 'from some.path.foo import run_setup', 'import ast',
'nsvS = ' + str(new_system_variables), 'nsv = ast.literal_eval(nsvS)',
'uS = ' + str(user_dict), 'u = ast.literal_eval(uS)',
'run_setup(nsv, u)'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
以上是我的代码。我需要在后台运行run_setup方法。 run_setup实际上与我当前的实现一起运行,但字典中的值似乎都没有被传入.new_system_variables和user_dict是我试图传入的2个字典。提前感谢!
答案 0 :(得分:4)
改为使用multiprocessing
;
from multiprocessing import Process
from some.path.foo import run_setup
p = Process(target=run_setup, args=(new_system_variables, user_dict))
p.start()
p.join()
答案 1 :(得分:0)
您需要同时或两者删除字符串格式中= s周围的空格或在它们周围加上双引号,后者更好,因为它还可以处理参数中的任何空格。
您可能还需要{ printf("%s %s %s", $3, $1, $2);
for (i = 4; i <= NF; i++) printf("%s ", $i);
printf("\n");
}
选项告诉python以下是命令。