[英]How can I use subprocess.Popen to run a method in another file while passing in multiple dictionaries?
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个字典。在此先感谢!
改用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()
您需要一个或两个都删除字符串格式中= s周围的空格或在它们之间加上双引号,后者更好,因为它也可以处理参数中的任何空格。
您可能还需要一个'-c'
选项来告诉python以下是命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.