| 查看: 374 | 回复: 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++中传递过来不一致 |
» 猜你喜欢
Materials Today Chemistry审稿周期
已经有5人回复
溴的反应液脱色
已经有7人回复
国自然申请面上模板最新2026版出了吗?
已经有11人回复
推荐一本书
已经有12人回复
基金申报
已经有4人回复
计算机、0854电子信息(085401-058412)调剂
已经有4人回复
纳米粒子粒径的测量
已经有7人回复
常年博士招收(双一流,工科)
已经有4人回复
参与限项
已经有5人回复
有没有人能给点建议
已经有5人回复












回复此楼