| 查看: 414 | 回复: 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++中传递过来不一致 |
» 猜你喜欢
影响面上的因素
已经有9人回复
8月时间戳变的,举个手。玩一下,释放压力
已经有11人回复
一个有机合成实验室都需要哪些设备?
已经有11人回复
求各位大神看下
已经有23人回复
面上再次挂了,太难了,躺也躺不了,倦也卷不过,小学校之殇!
已经有30人回复
2027年申博
已经有4人回复
好消息?这个有何含义???
已经有10人回复
咨询面上基金
已经有4人回复
【2027博士申请】纳米药物递送方向
已经有4人回复
UV压敏胶开发
已经有7人回复










回复此楼