私は C++ アプリケーションに埋め込む Python を書いています。以下のように埋め込む必要があるpython(ユーザー定義のもの)のモジュールを宣言する関連コードスニペット:
boost::python::object main_module = boost::python::import("__main__");
boost::python::object main_namespace = main_module.attr("__dict__");
boost::python::exec("import python_module", main_namespace); //This line is the culprit
ただし、次のエラーが表示されると行き詰まります。
terminate called after throwing an instance of 'boost::python::error_already_set'
ユーザー定義の Python モジュールは、C++ コードと同じディレクトリにあります。それを使用しようとするとnumpy
、問題は、ユーザー定義のものだけでは機能しないことです。それをデバッグするために何ができますか?
編集:
コードを try/catch ブロックに含めた後、次のコンパイル エラーが発生しました。
ImportError: No module named python_module
私もこれを追加しようとします:
boost::python::exec("import sys; sys.path.append('/path/to/python_module.py');", main_namespace);
boost::python::exec("import python_module", main_namespace);
しかし、まだ機能していません。
問題は、C++ コードにどのように認識させるかです。