Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将参数传递给Python C API函数调用_Python_C++ - Fatal编程技术网

将参数传递给Python C API函数调用

将参数传递给Python C API函数调用,python,c++,Python,C++,我试图从C++调用Python函数。然而,我不知道如何将参数传递给python函数调用 我有一个名为“ARBNAME.PY”的Python文件,以及一个名为“Meal.CPP”的C++文件。 arbName.py main.cpp 这是我在这里的第一个问题,所以有反馈也很好!你的意思是分析命令行参数?它是将intmain()更改为intmain(intargc,char*argv[])。然后在argv中有参数。我的意思是向python函数传递一个变量。看起来你自己找到了答案! def someF

我试图从C++调用Python函数。然而,我不知道如何将参数传递给python函数调用

我有一个名为“ARBNAME.PY”的Python文件,以及一个名为“Meal.CPP”的C++文件。 arbName.py

main.cpp


这是我在这里的第一个问题,所以有反馈也很好!你的意思是分析命令行参数?它是将
intmain()
更改为
intmain(intargc,char*argv[])
。然后在
argv
中有参数。我的意思是向python函数传递一个变量。看起来你自己找到了答案!
def someFunction(a):
    return a
#include <Python.h>
int main()
{
    Py_Initialize();
    //add . to path
    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append(\".\")");

    PyObject* myModuleString = PyUnicode_FromString((char*)"arbName");
    PyObject* myModule = PyImport_Import(myModuleString);
    PyObject* myFunction = PyObject_GetAttrString(myModule,(char*)"someFunction");

    //couldn't figure out this part. 
    //How to declare a python variable and/or pass it to the python function.
    PyObject* args = PyUnicode_FromString("1");
    PyObject *myResult = PyObject_CallFunctionObjArgs(myFunction, args);
    return 0;
}
PyObject* args = Py_BuildValue("(d)", 2.0);
PyObject *myResult = PyObject_CallObject(myFunction, args);