| 查看: 366 | 回复: 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++中传递过来不一致 |
» 猜你喜欢
职称评审没过,求安慰
已经有34人回复
垃圾破二本职称评审标准
已经有17人回复
回收溶剂求助
已经有6人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有22人回复
申请26博士
已经有5人回复
EST投稿状态问题
已经有7人回复
毕业后当辅导员了,天天各种学生超烦
已经有4人回复
聘U V热熔胶研究人员
已经有10人回复
求助文献
已经有3人回复
投稿返修后收到这样的回复,还有希望吗
已经有8人回复













回复此楼