【问题标题】:run multiple python module from command line从命令行运行多个python模块
【发布时间】:2023-05-23 04:42:01
【问题描述】:

我想创建一个运行多个 python 项目的脚本。 每个项目都是阻塞的(意味着每个项目都应该永远运行)所以这个脚本必须并行运行每个项目。 此外,我希望在关闭主 shell 后关闭所有这些进程。 这是我想出的shell代码

%homepath%\Envs\env1\Scripts\pip.exe install -r python-req.txt
%homepath%\Envs\env1\Scripts\python.exe -m bot &

%homepath%\Envs\env2\Scripts\pip.exe install -r python-req.txt
%homepath%\Envs\env2\Scripts\python.exe -m base &

%homepath%\Envs\env3\Scripts\pip.exe install -r python-req.txt
%homepath%\Envs\env3\Scripts\python.exe -m caster &

我尝试使用 & 使 python 进程异步运行,但是脚本在第二行之后没有继续,只有第一个项目正在运行。

有没有办法运行所有的python进程?

【问题讨论】:

  • 查看start 命令start /? 的使用信息可能是明智的。删除 & 符号,并在每一行前面加上 start 应该可以防止 cmd.exe 在运行下一个命令之前等待每个命令完成!

标签: python batch-file cmd windows-scripting


【解决方案1】:

我建议你使用subprocess Python 库。

看看这个例子: How do I run multiple subprocesses in parallel and wait for them to finish in Python

【讨论】: