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

Python多进程启动触发RuntimeError:进程引导阶段未完成报错求助

解决Python多进程RuntimeError的方案

问题根源

这是Windows系统下用Python写多进程代码时特别常见的坑!因为Windows不像Linux用fork方式创建子进程,它用的是spawn——启动子进程时会重新加载整个主模块代码。如果你的进程创建逻辑没做保护,子进程启动后会再次执行创建进程的代码,直接陷入无限递归,最终就触发了这个RuntimeError。

修复后的代码

只需要把创建和启动进程的逻辑放到if __name__ == '__main__':代码块里就行,修改后的完整代码如下:

import time
import multiprocessing

def mydef(arg):
    time.sleep(arg)
    print("Slept for 1 Sec")  # 顺便帮你修正了拼写错误~

if __name__ == '__main__':
    pro = []
    for _ in range(15):
        p = multiprocessing.Process(target=mydef, args=[1])
        p.start()
        pro.append(p)
    for proo in pro:
        proo.join()

为什么这样能解决问题?

  • 当你直接运行这个脚本时,主模块的__name__值是'__main__',这时候会执行if块里创建进程的逻辑。
  • 子进程启动时会重新导入主模块,这时__name__的值是模块名(不是'__main__'),所以if块里的代码不会被执行,完美避免了子进程重复创建进程的恶性循环。

另外错误提示里提到的freeze_support(),如果你不需要把程序打包成可执行文件(比如用PyInstaller),完全不用加,上面的代码已经足够解决问题啦。

内容的提问来源于stack exchange,提问作者Tanay Mishra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:44:56