| 查看: 385 | 回复: 0 | |||
[求助]
从C++里调用python,传递参数时出现异常
|
|
先看代码 C++ pArg = PyTuple_New(6); PyTuple_SetItem(pArg,0,Py_BuildValue("i",NUM_OF_SPECTRUM)); PyTuple_SetItem(pArg,1,Py_BuildValue("i",TURB_INDEX)); PyTuple_SetItem(pArg,2,Py_BuildValue("i",CN_START_IDX)); PyTuple_SetItem(pArg,3,Py_BuildValue("i",CN_END_IDX)); pSpec = PyTuple_New(spec.size()); qDebug()<<spec; for(VECF::iterator iter = spec.begin();iter != spec.end();iter ++) { pAbsorb = Py_BuildValue("f",*iter); PyTuple_SetItem(pSpec,static_cast<int>(iter-spec.begin()),pAbsorb); Py_XDECREF(pAbsorb); } PyTuple_SetItem(pArg,4,pSpec); PyTuple_SetItem(pArg,5,Py_BuildValue("s",MODEL_PARAM_FILE)); pObject = PyEval_CallObject(pClass,pArg); Python class model_TCN(object): def __init__(self,spectrum_pixel,turbidity_index,start_position,end_position,spectrum,model_param_name): self.TURB_INDEX = turbidity_index self.SPEC_PIXEL = spectrum_pixel self.START_POSI = start_position self.END_POSI = end_position f_model_param = open(model_param_name,'r') self.model_param = pk.load(f_model_param) 其他参数都能传递成功,唯独第五个参数,一个Tuple传递异常,python对象获得了这个tuple,但tuple中的值与C++中传递过来不一致 |
» 猜你喜欢
265求调剂
已经有9人回复
085600材料与化工调剂
已经有20人回复
专硕 351 086100 也是考的材科基 本科也是材料
已经有6人回复
085600专硕材料与化工348分求调剂
已经有10人回复
085600 295分求调剂
已经有21人回复
285求调剂
已经有5人回复
一志愿安徽大学0817化学工程与技术,求调剂
已经有9人回复
一志愿0817化学工程与技术,求调剂
已经有8人回复
271分求调剂学校
已经有3人回复
生物学308分求调剂(一志愿华东师大)
已经有7人回复














回复此楼
120