X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FContainer%2FContainer_init_python.cxx;h=dad0be21b03f3fe07fbd07f1c996baa62304b875;hb=52111d0ad7a0d8acccc1bb4e49bb5877d949b844;hp=21c21934ba100b755b49270ef5c893b315ea151d;hpb=e429ce02076e083051c6520e0d7113022bd67b18;p=modules%2Fkernel.git diff --git a/src/Container/Container_init_python.cxx b/src/Container/Container_init_python.cxx index 21c21934b..dad0be21b 100644 --- a/src/Container/Container_init_python.cxx +++ b/src/Container/Container_init_python.cxx @@ -20,19 +20,13 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SALOME Container : implementation of container and engine for Kernel -// File : Container_init_python.cxx -// Author : Paul RASCLE, EDF -// Module : KERNEL -// $Header$ -// #include #ifndef WIN32 #include #endif +#include #include "utilities.h" - #include "Container_init_python.hxx" void KERNEL_PYTHON::init_python(int argc, char **argv) @@ -53,6 +47,19 @@ void KERNEL_PYTHON::init_python(int argc, char **argv) Py_Initialize(); // Initialize the interpreter PySys_SetArgv(argc, argv); PyRun_SimpleString("import threading\n"); + // VSR (22/09/2016): This is a workaround to prevent invoking qFatal() from PyQt5 + // causing application aborting + std::string script; + script += "def _custom_except_hook(exc_type, exc_value, exc_traceback):\n"; + script += " import sys\n"; + script += " sys.__excepthook__(exc_type, exc_value, exc_traceback)\n"; + script += " pass\n"; + script += "\n"; + script += "import sys\n"; + script += "sys.excepthook = _custom_except_hook\n"; + script += "del _custom_except_hook, sys\n"; + int res = PyRun_SimpleString(script.c_str()); + // VSR (22/09/2016): end of workaround PyEval_InitThreads(); // Create (and acquire) the interpreter lock PyThreadState *pts = PyGILState_GetThisThreadState(); PyEval_ReleaseThread(pts);