を使用していくつかの Python プロシージャを C++ コードに埋め込もうとしていますが、エラーで失敗します
TypeError: C++ タイプの to_python (by_value) コンバーターが見つかりません: boost::python::detail::kwds_proxy
ネットワーク上で見つけたすべての例 ( thisおよびthis ) を正直に調べましたが、 ****kwargs** 変数を C++ から Pythonに渡すための明確な解決策はまだありません。この失敗は非常にまれなようです。
呼び出そうとしている Python 関数は、文字列値と辞書を受け取ります。
from ipalib import api
user_kw = dict(givenname=u'Test', sn=u'User')
api.Command.user_add.(u'Pythonist', **user_kw)
これはその C++ 実装です。
//Importing modules
bp::import("__main__");
ipalib = bp::import("ipalib");
ipalib_namespace = ipalib.attr("__dict__");
api = ipalib.attr("api");
... //Starting Python environment
//Construct args
std::string name = "Pythonist";
bp::dict new_user;
new_user["givenname"] = "Test";
new_user["sn"] = "User";
//Calling the function
bp::object user_add_wrapper = api.attr("Command").attr("user_add");
user_add_wrapper(name, new_user);
そして最後の行で、Boost は例外をスローします。私たちは何を間違っていますか?ありがとうございました。