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

如何在Visual Studio Code中让Python多进程代码分别在独立终端运行以追踪各自输出

如何让Python子进程在独立终端输出并与主进程分离?

我来给你几个实用的方案,帮你解决主、次级代码输出混杂,想要各自在独立终端显示的问题:

核心问题在于你当前用的multiprocessing子进程默认会共享主进程的标准输出流,所以两者的打印信息会混在一起。要实现独立终端输出,我们可以改用subprocess模块启动新的终端窗口执行次级脚本,或者通过输出重定向实现分离查看。

方案一:用subprocess启动独立终端(推荐)

这种方法直接让次级脚本在全新的终端窗口运行,输出完全独立,完美匹配你的需求。

Windows系统(适配cmd/PowerShell)

修改你的主代码Multiprocess_Part_1.py如下:

import subprocess
from time import sleep

def main():
    a = 1 + 1
    print(a)
    # 启动新cmd窗口执行次级脚本
    subprocess.Popen(['cmd.exe', '/c', 'python', 'Multiprocess_Part_2.py'])
    sleep(10)
    main()

if __name__ == '__main__':
    main()

Linux/macOS系统(适配系统终端)

根据你的系统选择对应的命令,比如Linux用xterm,macOS用系统自带的终端:

import subprocess
from time import sleep

def main():
    a = 1 + 1
    print(a)
    # Linux版本:用xterm启动新终端执行脚本
    subprocess.Popen(['xterm', '-e', 'python3 Multiprocess_Part_2.py'])
    # macOS版本:替换上面的行,用系统终端启动
    # subprocess.Popen(['open', '-a', 'Terminal', 'python3 Multiprocess_Part_2.py'])
    sleep(10)
    main()

if __name__ == '__main__':
    main()

同时别忘了给次级脚本Multiprocess_Part_2.py加上可执行入口:

def secondary():
    b = 2 + 2
    print(b)

# 让脚本可以被直接调用执行
if __name__ == '__main__':
    secondary()

方案二:输出重定向到文件(备选)

如果你不想打开太多终端窗口,也可以把次级脚本的输出定向到文件,然后在另一个终端实时查看:

修改主代码中的subprocess命令:

# Windows系统
subprocess.Popen(['cmd.exe', '/c', 'python Multiprocess_Part_2.py > secondary_output.txt 2>&1'])
# Linux/macOS系统
subprocess.Popen(['bash', '-c', 'python3 Multiprocess_Part_2.py > secondary_output.txt 2>&1'])

然后打开新终端,执行以下命令实时查看输出:

# Windows PowerShell
Get-Content secondary_output.txt -Wait
# Linux/macOS
tail -f secondary_output.txt

为什么不用multiprocessing?

multiprocessing.Process创建的子进程会和主进程共享标准输入输出流,即便手动重定向输出,也很难直接让它在全新的终端窗口运行——而subprocess可以直接调用系统终端命令,启动独立的终端进程,这是最直接的解决方式。

内容的提问来源于stack exchange,提问作者Digital Farmer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 15:42:32