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

Windows下Python/Pytest启动multiprocessing.Process触发访问违例异常

Windows下Python多进程抛出Windows fatal exception: access violation但脚本可正常执行

问题现象

在Windows系统中运行指定Python代码或通过Pytest执行时,控制台会输出Windows fatal exception: access violation异常信息,但脚本最终仍能正常执行完成。

复现代码

import multiprocessing as mp
import faulthandler
faulthandler.enable()

def dummy_function():
    import os
    print(f"Worker PID: {os.getpid()}")
    print("Worker process completed")

def test_reproduce():
    p = mp.Process(target=dummy_function)
    p.start()
    p.join()
    print(f"Process exit code: {p.exitcode}")

if __name__ == "__main__":
    print("Direct run:")
    test_reproduce()
    print("Success")

异常追踪信息

Windows fatal exception: access violation

Current thread 0x00000f48 (most recent call first):
  File "C:\Python\cpython-3.10.16-windows-x86_64-none\lib\multiprocessing\popen_spawn_win32.py", line 73 in __init__
  File "C:\Python\cpython-3.10.16-windows-x86_64-none\lib\multiprocessing\context.py", line 336 in _Popen
  File "C:\Python\cpython-3.10.16-windows-x86_64-none\lib\multiprocessing\context.py", line 224 in _Popen
  File "C:\Python\cpython-3.10.16-windows-x86_64-none\lib\multiprocessing\process.py", line 121 in start
  File "C:\src\sandbox\minimal.py", line 5 in test_reproduce

关键细节

  • 异常根源指向_winapi.CreateProcess()函数。
  • 未启用faulthandler时,直接运行Python脚本不会显示该异常;但Pytest会自动启用faulthandler,因此会触发异常输出。

环境范围

  • 系统:Windows 11、Windows 10
  • Python版本:3.10、3.12
  • 此前代码可正常运行,暂未明确导致问题出现的变更原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 11:13:12