环境:qt5.9.6 msvc2017 64bit python27 64bit
首先在工程中进行环境配置:这里需要注意,在debug模式下编译时 会报找不到python27_d.lib 解决办法是在复制python27.lib 一份,然后重命名为python27_d.lib
环境配好后,在代码中调用:
首先加头文件
然后在pro中修改 表示 生成的程序要放在bin中
python文件,如果已经有了,就直接放在bin中,供程序调用
如果需要新建,则 新建时选择bin目录即可
然后具体使用方法:
Py_Initialize(); //初始化
if(!Py_IsInitialized())
{
qDebug() << "Py_IsInitialized failed";
return;
}
//导入模块
PyObject* pModule =PyImport_ImportModule("detection");
if(!pModule)
{
qDebug()<<"can not open python file";
return;
}
//获取函数
PyObject* func = PyObject_GetAttrString(pModule,"detectionAll");
if (!func)
{
qDebug() << "get func detectionAll failed!";
return;
}
//调用函数
PyObject *pReturn = PyObject_CallFunction(func, NULL);
if (NULL == pReturn)
{
qDebug() << "NULL == pReturn";
return;
}
//获取py返回值
int zq;
int cw;
int zh;
int jq;
PyArg_ParseTuple(pReturn, "iiii", &zq,&cw,&zh,&jq);
c++调用python 需要传参和接收返回值,这一块儿没仔细研究