Web 上のさまざまなチュートリアルに従って、SWIG を使用して Python で 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 は 2 つのファイルを生成しlibraryInstance_wrap.cpp
、LibraryInstance.py
次に、.c++ ファイルをコンパイルしますlibraryInstance_wrap.cpp
。すべてが正常にコンパイルされ、ライブラリの .so ファイルが取得されます。
生成された swig を見るとLibraryInstance.py
、次のことがはっきりとわかります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 のコードを見ると、例外 ImportError がスローされたかのように見えます。モジュールは python で見つかりません。(18行目)。
これを修正するにはどうすればよいですか?