【问题标题】:Running multiple Python scripts in parallel using bash使用 bash 并行运行多个 Python 脚本
【发布时间】:2021-11-30 12:59:24
【问题描述】:

我想使用 bash 并行运行一个简单的 python 脚本 100 次。如果我运行 python 脚本串行一切都很好,但如果我并行运行它们,我会收到错误

stdin 不是 tty 大概是因为同一个python文件被多次打开?

这是 bash 文件

#!/bin/bash

for i in {1..5}; do
        winpty python test.py &
done

如果我删除 & 符号,一切正常(串行),但如果我并行运行它就不行。 Python 文件就是 1+1

PS:我使用 winpty python 运行 python 而不是通常的 python,因为我从 git-bash 控制台运行它并且那个东西有问题......但是,我不认为这是问题的来源,因为串行运行所有内容都可以正常工作...

【问题讨论】:

  • winpty 期望 stdin 是一个终端,当你在后台运行时不是这样,&
  • @Philippe 有没有办法绕过这个?
  • 如果获取交互式输出不是您的使用场景的核心,可能摆脱winpty。也许改为将输出重定向到日志文件或类似文件。

标签: python windows bash winpty


【解决方案1】:

我没有 winpty 来测试下面的脚本,但是试试:

#!/bin/bash

for i in {1..5}; do
        winpty python test.py < /dev/tty > /dev/tty 2>&1 &
done

【讨论】:

  • 谢谢,但它不起作用(输出是 tcsetattr failed。我现在更改为 ubuntu 工作流程,所以问题不再相关
猜你喜欢
  • 2023-04-07
  • 2017-12-12
  • 1970-01-01
  • 2012-11-21
  • 2018-03-14
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
  • 2022-01-05
相关资源
最近更新 更多