4

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) を呼び出すにはどうすればよいですか?

4

2 に答える 2

1

Py_BuildValue("{s:O}", "stdout", content_obj)

于 2013-06-11T14:15:56.067 に答える