我将python嵌入到xll中(所以最终我可以将其放入C++中)。当设置错误时,文档记录为终端失败-请参阅http://docs.python.org/c-api/init.html,“如果初始化失败,...it是致命错误。”。
有没有可能捕捉到这个错误以及如何捕捉?
在想一个全局窗口钩子吗?
发布于 2014-06-11 02:18:56
我创建了一个单独的可执行文件来尝试初始化python,从而解决了这个问题。我的主进程将启动它并检查退出代码,并且仅当子进程成功时才调用PyInitialize。因此,python被初始化了两次,但对于用户来说,这比明显的崩溃要好。
发布于 2011-10-07 22:17:43
调用Py_FatalError导致了一个致命错误,它用一条解释性消息告别,然后调用abort()。
发布于 2017-06-04 03:17:43
目前,Jason的解决方案似乎是唯一的方法,但这不包括Py_Initialize()之后的某个地方由于致命错误而导致Python失败的情况,因此嵌入式应用程序没有办法以更优雅的方式处理它(显示图形用户界面消息,然后才中止)。
我在Python bug跟踪器中创建了一个补丁和问题,交叉引用了这个问题:http://bugs.python.org/issue30560
https://stackoverflow.com/questions/7688374
复制相似问题