You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows中并行执行多个Python代码及三个以上Python脚本?

Hey there! Let's tackle your two parallel execution questions one by one—they’re both about running Python scripts side-by-side, but we’ll cover the Windows system-wide approach first, then dive into Spyder-specific workflows.

1. 如何在Windows系统中并行执行多个Python代码

这里有几种实用的方法,从简单的命令行操作到可控的脚本调度都有:

  • 方法1:用命令行/PowerShell直接后台启动
    如果只是想快速跑几个脚本,不用写额外代码,直接用系统终端就行:

    • 在CMD里,用start命令可以给每个脚本单独开一个窗口后台运行:
      start python script1.py
      start python script2.py
      start python script3.py
      
      每个脚本会在独立的命令行窗口里执行,互不干扰。
    • 在PowerShell里,用&符号可以让脚本在当前窗口后台运行,不阻塞终端:
      python script1.py &
      python script2.py &
      python script3.py &
      
  • 方法2:写Python调度脚本统一管理
    如果需要统一控制所有并行任务(比如等待所有脚本完成、收集输出),可以用multiprocessing模块写一个主调度脚本:

    import multiprocessing
    import subprocess
    
    def run_single_script(script_path):
        subprocess.run(["python", script_path])
    
    if __name__ == "__main__":
        # 替换成你的脚本路径列表
        target_scripts = ["script1.py", "script2.py", "script3.py"]
        process_list = []
    
        for script in target_scripts:
            proc = multiprocessing.Process(target=run_single_script, args=(script,))
            proc.start()
            process_list.append(proc)
        
        # 等待所有并行进程执行完毕
        for proc in process_list:
            proc.join()
    

    运行这个主脚本,就能一次性启动所有子脚本的并行进程。

  • 方法3:用批处理文件一键启动
    把启动命令写到.bat文件里,双击就能批量运行脚本:

    @echo off
    start python script1.py
    start python script2.py
    start python script3.py
    exit
    

    适合不想每次手动敲命令的场景,效果和CMD的start命令一致。

2. 在Spyder中并行执行三个及以上Python脚本

你当前用三个独立控制台手动启动的方式可行,但可以更高效地管理并行任务,推荐以下方案:

  • 方案1:用Spyder自带的IPython并行工具
    Spyder内置了IPython并行(ipyparallel)支持,步骤很简单:

    1. 打开Spyder的Tools菜单,选择IPython Clusters,点击Start启动集群(worker数量设为你需要的并行数,比如3或更多)。
    2. 写一个调度脚本分发任务:
      from ipyparallel import Client
      
      # 连接到启动的集群
      rc = Client()
      dview = rc[:]  # 使用所有可用的worker节点
      
      def run_script(script_path):
          import subprocess
          subprocess.run(["python", script_path])
      
      # 要并行执行的脚本列表
      target_scripts = ["script1.py", "script2.py", "script3.py"]
      # 分发任务到各个worker并行执行
      dview.map(run_script, target_scripts)
      
      运行这个脚本,每个worker会负责执行一个脚本,实现自动化并行。
  • 方案2:在Spyder中调用后台进程
    如果你不想手动打开多个控制台,可以在一个主脚本里用subprocess启动后台进程,还能隐藏额外的命令行窗口:

    import subprocess
    
    target_scripts = ["script1.py", "script2.py", "script3.py"]
    process_list = []
    
    for script in target_scripts:
        # 配置启动参数,隐藏命令行窗口(可选)
        startup_info = subprocess.STARTUPINFO()
        startup_info.dwFlags |= subprocess.STARTF_USESHOWWINDOW
        # 启动后台进程
        proc = subprocess.Popen(["python", script], startupinfo=startup_info)
        process_list.append(proc)
    
    # 可选:等待所有进程执行完成
    for proc in process_list:
        proc.wait()
    

    这样所有脚本在后台运行,Spyder的主控制台还能正常使用,不用手动开多个窗口。

  • 方案3:自动化打开Spyder多控制台(进阶)
    如果你习惯用多个Spyder控制台,可以通过Spyder的内部API实现自动打开控制台并运行脚本,但这个方法相对复杂,前面两种方案已经能满足大多数需求,所以更推荐优先使用前两种。

内容的提问来源于stack exchange,提问作者Aravind Raj Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:26:25