C++ コードから Python 関数を呼び出そうとすると問題が発生します。
次のパラメーターを使用して、Django 関数 call_command を呼び出そうとしています。
call_command('test', stdout=content)
理由はこちらをご覧ください。これにより、 stdout=content 引数なしでコマンドが実行されます。
PyObject_CallFunctionObjArgs(executeFunc, PyString_FromString("test"), NULL)
私の人生では、このキーワードを作成する方法を理解できません。
PyDict_New();
PyDict_SetItemString(...);
stdout=content の代わりに、'stdout'='content' 文字列を取得します。
Py_BuildValue("{s=s}", ... , ...)
同じことをします。
必要に応じてコンテンツ PyObject を問題なく取得できます。ある時点で Python が引用符を付ける (文字列として処理する) ことなく、stdout キーワード引数を正しく作成できないようです。
C API から call_command('test', stdout=content) を呼び出すにはどうすればよいですか?