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

Python3.11如何让subprocess.run()无需等待浏览器关闭就执行后续命令?

解决Python 3.11中subprocess.run等待浏览器关闭才执行后续命令的问题

问题原因

Edge、Chrome、Firefox这类浏览器的启动机制可能发生了更新,启动程序不再立即退出,而是与主浏览器进程保持关联;同时subprocess.run()默认会等待子进程终止,os.system()本身属于阻塞调用,因此出现必须关闭浏览器才会执行后续代码的情况。

解决方案

1. 使用subprocess.Popen(推荐)

Popen是异步启动子进程的方式,不会等待进程结束,可直接执行后续代码:

import subprocess
edge = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
subprocess.Popen(edge.split())
print('next command')

2. 借助Windows的start命令配合subprocess.run

通过shell=True调用Windows的start命令,让浏览器在独立进程启动,避免阻塞:

import subprocess
edge = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
# start命令需要空的标题参数"",避免路径含空格时出错
subprocess.run(f'start "" "{edge}"', shell=True)
print('next command')

3. 设置进程创建标志

通过creationflags参数创建新进程组,让subprocess.run无需等待子进程终止:

import subprocess
edge = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
subprocess.run(edge.split(), creationflags=subprocess.CREATE_NEW_PROCESS_GROUP)
print('next command')

内容的提问来源于stack exchange,提问作者Dave Carlee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:12:08