私はPython埋め込みの新機能です。 私はPython + numpyコードをC++コールバック関数(dllの中に)に埋め込もうとしていますPython + numpyコードをC++ dllコールバックに埋め込む
私が直面している問題は以下の通りです。私が持っている場合:
Py_Initialize();
// some python glue
// python invocation
Py_Finalize();
すべてがうまくいきます。
私がある場合:
Py_Initialize();
_import_array(); //to initialize numpy C-API
// some python glue + numpy array object creation
// python invocation via PyObject_CallObject()
Py_Finalize();
これは、それが(_import_arrayに到達する第2の時間にクラッシュ)。私が代わりに(したがってたびに初期化しない/ファイナライズ)デストラクタでPythonとnumpyの初期化は一度だけとファイナライズを行う場合は、コールバックを離れるとき
..すべてのクラッシュをを(それが最初のコールバックのために働くことを意味します)
私は推測するここでの問題はnumpyのですが、私はあなたの.dllにかかわらず、コードが実際に呼び出された回数の、いったんのみ初期化されていることを確認してみ
あなたは完全にDLLが構築される方法を制御することができる場合、私はperonallyのdistutilsとSWIGに詳細を残すでしょう。ここにプロジェクトの例(numpyとのインタフェース)があります:https://github.com/martinxyz/python/tree/master/realistic – maxy