因为Python库比较强大,所以就采用Qt去调用Python脚本进行项目开发,下面是Qt调用Python脚本,结合CPython进行传值等
使用的编译器是QtCreater5.6
使用Python版本是Python3.4
在调用Python脚本时,先将Python的库文件以及头文件导入
INCLUDEPATH += -I C:/Python34/include
LIBS += -LC:/Python34/libs/ -lpython34
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//进行初始化
Py_Initialize();
//如果初始化失败,返回
if(!Py_IsInitialized())
{
qDebug()<<"11111111111111111111";
return a.exec();
}
//加载模块,模块名称为myModule,就是myModule.py文件
PyObject *pModule = PyImport_ImportModule("myModule");
//如果加载失败,则返回
if(!pModule)
{
qDebug()<<"2222222222222222";
return a.exec();
}
//加载函数greatFunc
PyObject * pFuncHello = PyObject_GetAttrString(pModule, "greatFunc");
//如果失败则返回
if(!pFuncHello)
{
qDebug()<<"3333333333333333333333";
return a.exec();
}
//调用函数
PyObject_CallFunction(pFuncHello, NULL);
//退出
Py_Finalize();
return a.exec();
}
建立Py文件myModule.py,放到项目目录下
这个时候运行程序,发现在加载模块时失败,是因为找不到该模块
我们需要在Python的C:\Python34\Lib\site-packages路径下建立.pth文件,Python在遍历已知的库文件目录过程中,如果见到一个.pth文件,就会将该文件中所记录的路径加入到sys.path中,这样.pth文件所指明的库也就可以被Python的运行环境找到。.pth文件名可以任意填写。
.pth文件的内容D:/Program/Qt/YunNiuProject/, 将你放.py文件的路径写入就行了
这个时候再运行就会成功了