在pythonQt中使用numpy模块

时间:2015-09-21 06:10:08

标签: c++ numpy pyqt

我想在Qt中使用python(尤其是numpy pkg),所以我将PythonQt用于此目的。因为我需要numpy python模块,所以我使用这个标志来初始化PythonQt。

PythonQt::init(PythonQt::ExternalHelp);

为了测试numpy我使用简单的样本测试,如下所示

int main(int argc, char *argv[]){
    QCoreApplication a(argc,argv);
    PythonQt::init(PythonQt::ExternalHelp);
    PythonQtObjectPtr  context=PythonQt::self()->getMainModule();
    context.evalScript(“import numpy\ndef mul(a,b):\n  return a*b”);
    QVariantList args;
    Args<<42<<2;
    QVariant result=context.Call(“mul”,args);
    qDebug()<<result.toString();
    return a.exec();
}

当我运行上面的简单代码时,会引发此错误: 文件&#34; /usr/local/lib/python-64bit-3.4.3/lib/site-packages/numpy/core/ init .py&#34;,第5行,in ImportError:没有名为multiarray的模块

我还在c ++中创建了一个简单的项目,并将python.h头文件和python lib目录添加到我的项目中以测试numpy。结果还可以,一切正常,但在PythonQt中它不起作用。我搜索了很多这个错误,但没有一个解决了我的问题。

我需要立即解决这个问题,以便帮助

1 个答案:

答案 0 :(得分:1)

最后经过大量尝试解决这个问题后,我发现PythonQt应该在发布模式下构建才能正常工作(如pythonQt的文档中所述)。因为我编译python3.4,我可以调试PythonQt,因为我在Debuging模式下构建PythonQt它为我生成PythonQt.pdb文件,但在调试模式下它无法正常工作。 我留下这篇文章,说明谁遇到同样的问题。