在C++中嵌入Python:赋值C++和Python变量

2 投票
1 回答
1506 浏览
提问于 2025-04-17 14:20

我正在写一个小程序(下面这个),它把Python嵌入到C++代码中。

#include <Python.h>

int main()     
{

    int x;
    Py_Initialize();

    const char* pythonScript = "print 'Start'"
    PyRun_SimpleString(pythonScript);

    /*
    assign a python variable 'n' to 'x' i.e n=x
    */

    Py_Finalize();
    return 0; 

}

我这里的需求是把Python中的变量'n'赋值为C++中的变量'x'。有没有办法做到这一点呢?

提前谢谢你们。

1 个回答

1

下面这段代码应该可以正常运行(虽然没有测试过):

PyObject *main = PyImport_AddModule("__main__"); // borrowed
if (main == NULL)
    error();
PyObject *globals = PyModule_GetDict(main); // borrowed
PyObject *value = PyInt_FromLong(x);
if (value == NULL)
   error();
if (PyDict_SetItemString(globals, "n", value) < 0)
   error();
Py_DECREF(value);

撰写回答