QT调用python模块
我在python代码里加了import matplotlib.pyplot as plt这一句后,QT里就无法读取模块了,以下是QT代码中的调用python部分,运行之后pModule一直返回0,求求各位大佬帮小弟解决一下!!!Py_SetPythonHome(L"D:\\python32");
Py_Initialize();
if( !Py_IsInitialized() ){
return 0;
}
//执行单句Python语句,用于给出调用模块的路径,否则将无法找到相应的调用模块
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.argv = ['python.py']");
PyRun_SimpleString("sys.path.append('./')");
QString path;
QDir dir;
path=dir.currentPath();
//获取qt_python_fun.py模块的指针
PyObject* pModule = PyImport_ImportModule("chartPainting");//**最重要**
if (! pModule){
qDebug()<<QObject::tr("Can't open python file\n");
return 0;
}
//获取hello函数的指针
PyObject* pFunHandler = PyObject_GetAttrString(pModule,"chartCp");//**最重要**
if (!pFunHandler){
qDebug()<<QObject::tr("Get function chartCp failed\n");
return 0;
}
//调用函数,传入参数为NULL
PyObject_CallFunction(pFunHandler,nullptr);
//销毁Python解释器,这是调用的最后一步
Py_Finalize();