c++调用python函数报错

问题描述

c++调用python函数报错

目标:用C++程序调用python模块里面的函数
python 模块: testm.py
函数:testm
具体实现如下:
python 模块代码
def testm(a,b=2):
c=a+b
return c

c++部分代码
#include"Python.h"
#include
#include
using namespace std;
void main()
{
bool c;
int a = 0;
Py_Initialize();
PyRun_SimpleString("print('hellow')");
PyObject*modle = NULL;
PyObject*func = NULL;
PyObject*parm = NULL;
PyObject*result=NULL;
modle = PyImport_ImportModule("testm");
if (!modle)
{
cout << "wrong pyfile" << endl;
system("pause");
}
func = PyObject_GetAttrString(modle, "testm");
if (!func)
{
cout << "wrong func" << endl;
system("pause");
}
parm = Py_BuildValue("i", 10);
result = PyEval_CallObject(func, parm);
PyArg_Parse(result, "i", &a);
cout << a << endl;
Py_DECREF(parm);
Py_DECREF(func);
Py_Finalize();
system("pause");
}

报错内容,a的值还是0,其余部分正常。
问题如下:
第一个,a为什么不是102;
第二个,能不能检验传递参数是否传递成功
第三个,如何传递列表与获得返回列表

解决方案

http://blog.csdn.net/marising/article/details/2845339

解决方案二:

c++调用python函数
C++调用Python函数
python 中调用c++定义的函数

解决方案三:

http://www.cnblogs.com/linxr/archive/2011/07/22/2113843.html

时间: 2024-08-31 20:53:01

c++调用python函数报错的相关文章

vc++-新人求帮助:VC6 调用delphi编写的com组件函数 报错

问题描述 新人求帮助:VC6 调用delphi编写的com组件函数 报错 代码: IElectric *ptr = NULL; CLSID clsid; HRESULT hr = CLSIDFromString((LPOLESTR)L"{18F86FFB-158B-42D6-9203-C4197A4E76FE}",&clsid); hr = CoInitialize(0); if(!SUCCEEDED(hr)) { int nCode = GetLastError(); } h

java微信公众号 js调用微信支付报错 errMsg:chooseWXPay:fail

问题描述 java微信公众号 js调用微信支付报错 errMsg:chooseWXPay:fail 奖励有点少,实在是没有c币了.下面是我的js,不清楚到底是什么原因导致的,各位大神帮忙给解决下吧:具体报错:config签名啥的是OK的,但是在调用chooseWXPay的时候,就失败了 报错errMsg:chooseWXPay:fail 没有别的提示信息,不清楚失败原因$('#pay_sub_btn').on(touchType function(){ var _this = $(this);

平台-Eclipse中输入R函数报错

问题描述 Eclipse中输入R函数报错 各位大神好! 刚入门,很喜欢Eclipse这个操作平台,但有些问题很头疼.... 在用Eclipse编辑R语言的过程中,使用basicStat这个函数,一直报--错误: 没有"basicStats"这个函数...在help里面check for updates也没反应, 很是头疼.... 请问是什么原因了?有哪位前辈能指导下? 还有个小问题,我在安装python的编译器interpreter时,也出问题,装不上去...

vs2012配置opencv后,函数报错,求大神解释

问题描述 vs2012配置opencv后,函数报错,求大神解释 我在配置好opencv2.4.10之后,找了个程序测试一下,但是程序中所有的opencv库中的函数都报错,说是为定义的标示符,但是opencv的库函数我已经链接输入了.搞了好久,求大神解答额 解决方案 opencv的lib库是否也用vs2012编译的,其次,link的时候路径等是否设置争取

make 调用informix esql 报错:-23101 Unable to load locale categories.

问题描述 make 调用informix esql 报错:-23101 Unable to load locale categories. 最近用make在linux环境下进行代码编译,结果报错 /opt/informix/bin/esql -e -g /home/source/informix.ecpp -23101 Unable to load locale categories. 由于以前没有接触过informix 加上编译的make也是别人写的 所以很纠结,求各位大大帮忙解决下啊 ,急啊

ios-求助 iOS https适配 我用的AFNetworking ssl验证的那个函数报错..

问题描述 求助 iOS https适配 我用的AFNetworking ssl验证的那个函数报错.. AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; //1.管理器[manager setRequestSerializer:[AFHTTPRequestSerializer serializer]];manager.responseSerializer.acceptableContentTypes = [NSSet s

python matplotlib报错 mac系统,急!!!

问题描述 python matplotlib报错 mac系统,急!!! 100C 各位大神好,我在spyder中输入import matplotlib.pyplot as plt 结果就报错了:Traceback (most recent call last): File """" line 1 in File ""/Users/kevin/anaconda/lib/python2.7/site-packages/spyderlib/widget

ava android-不明原因的函数报错,求解决

问题描述 不明原因的函数报错,求解决 public double std(double a[],int b) { double c=0.0; double d=0.0; for(int i=0;i<b;i++) c=c+(a[i]-mean(a,b))*(a[i]-mean(a,b)); d=Math.sqrt(c/b); return(d); } 在最下面的有报错:Syntax-error-insert-to-complete-lass-ody,不过同样结构写的其他几个函数就没问题啊 解决方案

dll调用-jdk1.6下用jna调用dll库报错,换成jdk1.7成功

问题描述 jdk1.6下用jna调用dll库报错,换成jdk1.7成功 使用jkd1.6提示java.lang.UnsatisfiedLink,换成jdk1.7就可以了,请问有没有熟悉的大神知道是什么原因 解决方案 http://bbs.csdn.net/topics/390509805