2011-10-07 65 views

回答

1

我通過創建一個單獨的可執行文件來嘗試初始化python來解決這個問題。我的主進程將啓動它並檢查退出代碼,如果子進程成功,則只調用PyInitialize。所以,python被初始化了兩次,但它比用戶明顯的崩潰要好。

3

致電Py_FatalError會引發致命錯誤,該錯誤與解釋性消息告別,然後致電abort()

+1

這不是很好呢?我已經爲SIGABRT,一個退出處理程序和一個退出處理程序添加了一個信號處理程序,但不幸的是沒有一個被觸發。 – DangerMouse

1

目前,Jason的解決方案似乎是唯一的方法,但是這並不包括由於在Py_Initialize()之後的某處發生致命錯誤而導致Python失敗的情況,所以嵌入式應用程序無法在更優雅的方式(顯示GUI消息,然後才中止)。

我創建了一個Python的bug跟蹤系統補丁和問題,交叉引用了這個問題:http://bugs.python.org/issue30560

相關問題