在Windows中抑制Python Subprocess崩溃

时间:2015-04-16 15:38:13

标签: python crash subprocess

我所提出的问题几乎与提出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计算机上。我怀疑之前引用的解决方案需要更新,但我自己无法找到解决方案。任何帮助将不胜感激。

0 个答案:

没有答案