gpt4 book ai didi

python-3.x - 如何同时运行多个python脚本?

转载 作者:行者123 更新时间:2023-12-02 03:07:55 27 4
gpt4 key购买 nike

我已经阅读了问题 here 的一些答案但他们都不适合我。我有不同的训练文件,需要三天才能完成,但如果我同时运行这些文件,我可以减少时间。此外,我需要在完成所有方法的训练后直接运行测试文件。

import os
import subprocess,_multiprocessing
import sys
import gc # Garbage Collector
version = ".".join(map(str, sys.version_info[:3]))
if len(version) >3:
version=version[:-2];
current_dir = os.path.dirname(os.path.realpath(__file__))
# multiprocessing.Process(["python"+version, os.path.join(current_dir, "main_s_train.py"),os.path.join(current_dir, "SC.py")])
gc.collect()
bots = [subprocess.check_call(["python"+version, os.path.join(current_dir, "main_train.py")]),subprocess.check_call(["python"+version, os.path.join(current_dir, "main_s_train.py")]),subprocess.check_call(["python"+version, os.path.join(current_dir, "SC.py")]),subprocess.check_call(["python"+version, os.path.join(current_dir, "MC.py")])]
modules = map(__import__,bots)
import multiprocessing,subprocess
for bot in (bots):
p = multiprocessing.Process(target=lambda: __import__(bot))
p.start()

有没有建议同时运行多个python脚本。

最佳答案

对于 Ubuntu,有一个答案 here这可能有效。您可以通过 bash 运行多个程序。 “&”告诉它在后台运行程序。

python program1.py &
python program2.py &

由于听起来您正在使用装有 Ubuntu 的远程服务器,因此我建议改用 tmux。它允许您打开多个 session ,在每个 session 上运行一个程序,并在您关闭连接后让它们继续运行。如果您需要从程序中输入/读取任何内容,它还允许您返回到每个 session 。我找到了这个 guide几个月前我不得不做类似的事情时很有帮助。

您也可以在 Ubuntu 上运行批处理文件。我不太熟悉在 Ubuntu 上运行批处理文件,但像下面这样的东西应该适合你。您还可以添加 while loops, if statements, etc. .您通常会在 shell 中键入的任何内容都可以放入批处理文件中,以自动运行您的程序或导航目录。

#!/bin/bash
ECHO starting training program
# without the "&", it waits for your training program to finish running
python training_program.py
ECHO training program completed

# Adding the "&" tells the programs to run in the background
# You can also use tmux instead, if you want to navigate the different programs
python program1.py &
python program2.py &
ECHO training programs running in the background

该文件应以“.sh”扩展名保存,然后通过在您的 shell 中运行以下命令使该文件可执行。

chmod +x your_batch_file.sh 

如果您使用的是 Windows,您可以 create a batch file运行所有程序。以下是您可以使用所选编辑器创建的文件示例:

# If you don't want to see the outputs/print of your training program, 
# add @ECHO OFF to the start. If you want to see them, remove the @ECHO OFF
@ECHO OFF

# Without "start" before the script to run your training program,
# the batch file will wait until the training program finishes
python "path\to\your\training_program.py"
ECHO training program completed

# Adding "start" opens it in a new window, and processes the next line
# without waiting for the program to finish running
start python "path\to\your\program1.py"
ECHO Running program1
start python "path\to\your\program2.py"
ECHO Running program2

# Adding "PAUSE" makes the script wait for you manually type a key to continue,
# but it is not required. You can add PAUSE anywhere in the script
PAUSE

"start"在新窗口中运行每个程序。配置文本后,使用“.bat”扩展名保护文件。然后您所要做的就是单击文件以运行批处理文件,这将在单独的窗口中打开每个程序。

同样,您可以从命令提示符运行以下命令,它也会在单独的窗口中打开它们。

start python path\to\your\program1.py
start python path\to\your\program2.py

但听起来您不止一次执行此操作,在这种情况下,批处理文件可能更合适。

关于python-3.x - 如何同时运行多个python脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58511545/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com