我所提出的问题几乎与提出here的问题相同。但是,那里提供的解决方案无效。
我的问题描述:我同时运行七(7)个多个进程来进行数百次模拟。偶尔,Python会崩溃并且Windows消息框被强制进入屏幕。这使得子进程无法处理,直到我手动单击消息框上的“确定”。其他子进程继续正常启动和终止。
我的“调度程序”脚本的相关部分如下所示:
import os
# this is the accepted answer from the older SO question
import ctypes
SEM_NOGPFAULTERRORBOX = 0x0002
ctypes.windll.kernel32.SetErrorMode(SEM_NOGPFAULTERRORBOX)
subprocess_flags = 0x8000000
# some variables
worker_script = 'C:\Example\worker.py'
exe = 'C:\\Anaconda\\python.exe'
new_env = os.environ
new_env['PATH'] = exe + ';' + os.environ['PATH']
# this section is actually in a loop, launching the worker script with
# different combinations of param1 and param2
cmd = [exe, worker_script, param1, param2]
proc = subprocess.Popen(cmd, env=new_env, creationflags=subprocess_flags)
if proc.poll() is not None:
proc.kill()
我在使用Python 2.7.9的64位Windows 7计算机上。我怀疑之前引用的解决方案需要更新,但我自己无法找到解决方案。任何帮助将不胜感激。