私はライブラリを使用しています。ライブラリの特定のクラスから継承したクラスを定義するAPIドキュメントを指定しています。ライブラリ自体はC++で書かれており、PythonへのバインディングはSWIGを使って生成されます。問題は、私がPythonのコードを実行したときに、Pythonがどんな例外をスローしても、「Swig :: DirectorMethodException 'のインスタンスを投げた後に終了するというエラーが出ます。SWIG:C++コードからのPython例外の報告
プログラムの実行中に報告されるPythonコードによってこの例外が発生したがっています。私がZeroDivisionErrorを取得した場合のEsp。
SWIGのドキュメントhttp://www.swig.org/Doc2.0/Python.html#Python_nn36に記載されている方法にちょっとハックしようとしましたが、運はありません。私はまだ同じメッセージを取得します。「swig :: DirectorMethodException」のインスタンスをスローした後に呼び出されるterminateは、module.iファイルに何を入れても関係ありません。
この問題を回避する方法について、私に何か指摘してもらえますか?そうすれば、Pythonの例外はそのまま報告されますか?
ありがとうございました。私は実際にこの問題を修正し、修正はここにあります:https://github.com/madhusudancs/mesos/commit/93ed9f32d8752d687d6b6af6bcb6bfdf815f115dこれは非常に単純ですが、間違いなくよく文書化されていません。また、これは私のプロジェクトではないので、開発者にboost :: pythonを使用するよう提案することはできますが、それは実現できません。 –
SWIGが必須であると考えました。私は、私のようにこの質問に遭遇した人々にブーストオプションを残したかったのです:)。そして今、彼らはSWIGも持っています。 – ginbot