| 查看: 381 | 回复: 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++中传递过来不一致 |
» 猜你喜欢
情人节自我反思:在爱情中有过遗憾吗?
已经有6人回复
基金正文30页指的是报告正文还是整个申请书
已经有4人回复
今年春晚有几个节目很不错,点赞!
已经有6人回复
球磨粉体时遇到了大的问题,请指教!
已经有15人回复
过年走亲戚时感受到了所开私家车的鄙视链
已经有5人回复
江汉大学解明教授课题组招博士研究生/博士后
已经有3人回复













回复此楼