[英]How to use subprocess.Popen with multiple creationflags?
我正在尝试在 shell 上执行节点命令,并且我需要 python 在继续执行下一行代码之前不要等到节点关闭,所以我使用创建标志: CREATE_NEW_CONSOLE
,但我也想要 python显示在屏幕上,所以我也想使用CREATE_NO_WINDOW
。 该名称似乎表明可以使用多个,实际上文档说:
如果给定,creationflags 可以是以下一个或多个标志:
CREATE_NEW_CONSOLE
CREATE_NEW_PROCESS_GROUP
ABOVE_NORMAL_PRIORITY_CLASS
BELOW_NORMAL_PRIORITY_CLASS
HIGH_PRIORITY_CLASS
IDLE_PRIORITY_CLASS
NORMAL_PRIORITY_CLASS
REALTIME_PRIORITY_CLASS
CREATE_NO_WINDOW
DETACHED_PROCESS
CREATE_DEFAULT_ERROR_MODE
CREATE_BREAKAWAY_FROM_JOB
但我找不到一次使用多个的方法。 如果我尝试使用元组或列表,则会出现错误消息: CreateProcess() argument 6 must be int, not tuple
。 我也找不到任何Popen
与多个创建标志一起使用的示例。
有没有办法用两个标志来调用它? 如果没有,我怎样才能达到分离进程的目的,并且屏幕上不会出现丑陋的黑色 window ?
我的代码:
def inicializar_API_biblia():
pathApiBibliaLocal = r'C:\\Users\\adassa\Desktop\\Programacao\\api-biblia\\index.js'
pid = subprocess.Popen(['node', pathApiBibliaLocal],
creationflags=(subprocess.CREATE_NO_WINDOW, subprocess.CREATE_NEW_CONSOLE)).pid
我需要 python 不要等到节点关闭后再继续下一行代码
这样的修改不应该是必要的,因为subprocess.Popen
不会等到子进程完成后再继续。
关于问题的其余部分,您需要使用按位或|
运算符来组合标志,如CREATE_NO_WINDOW | CREATE_NEW_CONSOLE
CREATE_NO_WINDOW | CREATE_NEW_CONSOLE
。 请注意,该特定组合可能没有意义。 (可以指定一个或多个标志这一事实并不意味着所有组合都是有意义的。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.