当前位置: 代码迷 >> python >> 如何在 linux 中与不同的参数并行运行 python 脚本?
  详细解决方案

如何在 linux 中与不同的参数并行运行 python 脚本?

热度:57   发布时间:2023-07-16 10:55:29.0

我有一个 python 脚本,它接受这样的参数。

conda 激活基础 python myScript.py arg1

我通过 ssh 连接到我的服务器,所以不会有窗口系统。 我想用我的脚本并行运行 5 个不同的脚本。 所以喜欢,

#!/bin/bash
conda activate base
for i in arg1 arg2 arg3 arg4 arg5
do
  python myScript.py $i
done

但这只会让代码一个接一个地运行。 我如何并行运行它?

使用GNU 并行

parallel python myScript.py ::: arg1 arg2 arg3 arg4 arg5

GNU Parallel还可以为您在一台或多台服务器上执行ssh ,因此您无需登录:

parallel -S server 'conda activate base; python myScript.sh' ::: arg1 arg2 arg3 arg4 arg5

另外,添加一个shebang作为脚本的第一行,如下所示:

#!/usr/bin/env python

并使您的脚本可执行,如下所示:

chmod +x myScript.py

那么你可以停止告诉你的 shell 在每次你想要运行它时使用 Python 并且只使用:

./myScript.py arg

您可以使用&在后台执行它们:

for i in arg1 arg2 arg3 arg4 arg5
do
  python myScript.py $i &
  # Here ---------------^
done