我试图嵌入的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编译时工作。