Python抱怨SWIG模块不存在

遵循networking上的不同教程,我试图使用SWIG在python中构build一个c ++类的封装。

我的课堂看起来像这样:

/*file libraryInstance.h*/ struct LibraryInstance { void init(); void terminate(); private: std::shared_ptr<AnObject> m_spAnObject; }; 

对于python博览会,我做了这个.i文件:

 %module LibraryInstance %{ #include "libraryInstance.h" %} %include "libraryInstance.h" 

那么我已经执行了命令swig -c++ -python -o ./src/libraryInstance_wrap.cpp ./src/libraryInstance.i

没有任何输出错误,swig生成了两个文件, libraryInstance_wrap.cppLibraryInstance.py

然后我编译c ++文件,包括libraryInstance_wrap.cpp 。 所有编译好,我得到我的图书馆.so文件。

当我查看生成的LibraryInstance.py的swig时,我可以清楚地看到class LibraryInstance

比照 整个生成的python包装器在这里。

但是,当我启动命令python LibraryInstance.py ,在我的.so我相同的目录中,我看到这个错误输出:

 Traceback (most recent call last): File "LibraryInstance.py", line 26, in <module> _LibraryInstance = swig_import_helper() File "LibraryInstance.py", line 18, in swig_import_helper import _LibraryInstance ImportError: No module named _LibraryInstance 

而当我查看LibraryInstance.py的代码时,它看起来好像有一个exception抛出了ImportError,这个模块不能被pythonfind。 (第18行)。

任何想法,我应该怎么做来纠正这个?

在SWIG文档中, 第31.2.2段指出,库的名称应该是_NameOfThemodulee.so

所以我已经重新命名我的库_LibraryInstance.so ,而不是_LibraryInstance.so …现在我的模块加载正常。