同时运行多个python脚本

Sam*_*ami 31 python linux shell

如何运行多个python脚本?目前我像这样运行一个python script1.py.

我试过了python script1.py script2.py,但这不起作用:只运行第一个脚本.另外,我尝试过使用这样的单个文件;

import script1
import script2

python script1.py
python script2.py
Run Code Online (Sandbox Code Playgroud)

然而,这也不起作用.

Chr*_*son 50

使用Bash:

python script1.py &
python script2.py &
Run Code Online (Sandbox Code Playgroud)

这就是整个剧本.它将同时运行两个Python脚本.

Python可以自己做同样的事情,但它需要更多的打字,对于手头的问题是一个糟糕的选择.

我认为你可能会采取错误的方法来解决你的问题,我想听听你的意见.

  • 我只是想说,我很欣赏最后一行的后续行动,希望我们能够学到更多 (6认同)
  • 它执行OP所要求的 - 同时运行两个python脚本. (2认同)

log*_*ogc 23

同时运行两个Python进程的最简单的解决方案是从bash文件运行它们,并告诉每个进程使用&shell运算符进入后台.

python script1.py &
python script2.py &
Run Code Online (Sandbox Code Playgroud)

要以更加可控的方式并行运行多个进程,请查看Supervisor项目,或使用多处理模块从Python内部进行编排.

  • 可能我在接受的答案之前或之后发布了这个.我可以转过来问问题,为什么我没有得到任何赞成. (11认同)

San*_*ndy 14

wait建议在 bash 脚本末尾添加,因为当其中一个进程完成时脚本就会退出。如果我们需要脚本仅在所有 python 进程完成后退出,请wait在 bash 脚本末尾添加 。

所以脚本是

#!/bin/bash
python script1.py ;
python script2.py &
python script3.py &
wait
Run Code Online (Sandbox Code Playgroud)

;第一个脚本的末尾用于运行 script1,一旦完成,然后并行启动 script2 和 script3,并等待所有 3 个脚本完成。


小智 7

我必须这样做并使用子流程。

import subprocess

subprocess.run("python3 script1.py & python3 script2.py", shell=True)
Run Code Online (Sandbox Code Playgroud)

  • 这两个脚本是并行运行的吗? (4认同)