我試圖嵌入的wxPython在wxWidgets的應用程序,我得到以下錯誤:Python嵌入 - 加載已經加載的模塊
../src/common/object.cpp(251):斷言「classTable- > Get(m_className)== NULL「在RTTI表中已經在Register():Class」wxCommandEvent「中失敗 - 您是否多次使用了IMPLEMENT_DYNAMIC_CLASS()或將某個目標文件鏈接了兩次)?
我已經追查這件事到: wxPyCoreAPIPtr =(wxPyCoreAPI *)PyCObject_Import( 「WX 核心」, 「_wxPyCoreAPI」);
所以我猜測這是失敗的,因爲它試圖對已經加載的.so文件進行加載(這是由C和Python代碼所需的核心wxwidgets庫)。我可以通過dlopen的RTLD_NOLOAD標誌獲得打開的.so的句柄。
有沒有什麼辦法給Python的句柄,並告訴它把該句柄「加載」到解釋器的上下文中?
編輯:剛纔注意到,這個問題在wxPython的「embedded」示例中可以重現,使用wxWidgets origin/WX_3_0_BRANCH,Python 2.7,wxPython origin/master。
此外,它可能是特定於gtk3配置......它似乎在我用gtk2編譯時工作。