繁体   English   中英

在传递多个字典时如何使用subprocess.Popen在另一个文件中运行方法?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM