如何使用 subprocess.Popen 与多个 creationflags?

How to use subprocess.Popen with multiple creationflags?

我正在尝试在 shell 上执行节点命令,我需要 python 不要等到节点关闭后再继续下一行代码,所以我使用创建标志:CREATE_NEW_CONSOLE,但我也希望 window 不显示在屏幕上,所以我也想使用 CREATE_NO_WINDOW。这个名字似乎表明可以使用多个,事实上文档说:

creationflags, if given, can be one or more of the following flags: 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 与多个 creationflag 一起使用的示例。

有没有办法用两个标志来调用它?如果没有,我怎样才能达到分离进程的目的,同时又不让屏幕上出现难看的黑色 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

I need python not to wait until node is closed before moving on to the next line of code

这样的修改应该是不必要的,因为 subprocess.Popen 不会等到子进程完成后再继续。

余下的问题需要用位或|运算符组合标志位,如CREATE_NO_WINDOW | CREATE_NEW_CONSOLE。请注意,该特定组合可能没有意义。 (可以指定一个或多个标志这一事实并不意味着所有组合都是有意义的。)