注册 登录
编程论坛 QT论坛

QT调用python模块

A979821136 发布于 2020-12-06 11:16, 1669 次点击
我在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();
0 回复
1