【问题标题】:Can't get a python file to run 2 other python files on parallel无法让 python 文件并行运行 2 个其他 python 文件
【发布时间】:2020-02-03 05:27:45
【问题描述】:

所以我已经尝试了几个小时..DAYS 来找出同时运行 2 个 python 文件的代码。

我尝试过子进程、多进程、bash 之类的,我一定是做错了什么,我只是不知道是什么。

我有 2 个 python 文件,我想并行运行它们,但请注意它们都没有结束。我想在第一个文件打开并运行时运行第二个文件。

我尝试的所有操作都只打开第一个文件并停在那里,因为那里的脚本应该 24/7 运行。请注意,当我尝试使用单独的 bash 文件时,由于某种原因,它在 git 上打开然后关闭,什么也不做。我现在真的很绝望ngl

请提供详细的代码答案,因为我一直在扫描整个互联网(包括 StackOverflow),我已经尝试了所有方法,但似乎没有任何效果..

import subprocess
import LemonBot_General
import LemonBot_Time
import multiprocessing

def worker(file):
  subprocess.Popen(["python3 LemonBot_Time.py"], stdout=subprocess.PIPE)
  subprocess.Popen(["python3 LemonBot_General.py"],stdout=subprocess.PIPE)

if __name__ == '__main__':
    files = ["LemonBot_General.py","LemonBot_Time.py"]
    for i in files:
        p = multiprocessing.Process(target=worker, args=(i,))
        p.start()

这是我尝试过的最新版本,但没有成功。 我也单独尝试了子进程命令,但效果不佳。 Bash 文件也不起作用。

编辑:文件均未完成。我想并行运行它们。

【问题讨论】:

  • “请务必提供详细的代码答案,因为我一直在扫描整个互联网(包括 StackOverflow),我已经尝试了所有方法,但似乎没有任何效果。”您需要向我们展示您的内容'已经尝试并描述了您期望它如何工作以及它如何不工作。
  • 确实有很多事情,我相信我做错了应该起作用的事情。我希望有 2 个脚本不会同时运行。我无法准确显示,因为我已经删除了所有不起作用的东西......对不起
  • @juanpa.arrivillaga 设法找到了一些东西,更新了。
  • 为什么要将代码导入到一个进程中,还要调用单独的python进程来执行每个文件?
  • @SamMason 你是什么意思?我导入脚本是为了不每次都写入整个目录并使用 Popen 打开它们,但它只打开 1 个文件,因为它们没有完成。代码的最后一部分是我在 StackOverflow 中找到的一个可能的解决方案,但没有奏效。

标签: python python-3.x subprocess python-multiprocessing file-handling


【解决方案1】:

在每个文件的 threading.thread() 命令中使用 os.system('python3 myprogram.py') 命令。

【讨论】:

  • 仍然只打开 2 个文件中的 1 个:/
【解决方案2】:

您应该能够在子进程中使用 Popen。为我工作。如果您删除 p.wait() 行,第二个文件将在第一个文件完成后立即退出。

import time
import subprocess

p = subprocess.Popen(['python', 'test_file.py'])

time.sleep(5)
print("Working well")

p.wait() 

【讨论】:

  • 编辑:我用你的脚本让它工作了,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 2019-11-23
  • 1970-01-01
相关资源
最近更新 更多